php - 如何选择从mysql以php形式获取的值来更新数据

标签 php mysql

我通过 php 从数据库 mysql 获取已选择选项的值。标题和帖子值我从数据库中获得了当前 $id 的权利,但所选框的值未显示已选择的内容,请帮助我摆脱此错误

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "alurdu_db"; 
$id = $_GET['id'];
mysql_query('SET CHARACTER SET utf8'); 
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {    die("Connection failed: " .$conn->connect_error);
}
$sql = "SELECT * FROM news WHERE news_id='$id'";
$result = $conn->query($sql);
 if ($result->num_rows >0) {
   while($row = $result->fetch_assoc()) {  
  echo '<form action="up.php" method="post" enctype="multipart/form-data">';
  echo '<div class="form-group">';
  echo '<input type="text" class="form-control" name="news_title" value="' . $row["title"] . '">';
  echo '<select dir="ltr" style="text-align: center;" class="form-control" name="news_cat">';
  echo '<option value="National" if($row["news_cat"] == "National") echo "selected";>National</option>';
  echo '<option value="International" if($row["news_cat"] == "International") echo "selected";>International</option>';
  echo '</select>';
  echo '</form>'
}

} else {
echo "Wrong Page";
}
$conn->close();
?>

最佳答案

您需要检查数据库存储的值是否等于当前选项值。如果相等,您需要添加 selected property

<option value="National" <?= ($row["news_cat"] == 'National')? "selected" : "" ?>>National</option>

更新 1:问题是单引号和双引号转义。只需像这样使用而不是回显表单。

     while($row = $result->fetch_assoc()) {

      ?>

        <form action="up.php" method="post" enctype="multipart/form-data">
           <div class="form-group">
           <div class="col-md-2 text-center">News Title
            <input type="text" class="form-control" name="news_title" value="<?=$row["title"]?>">
           </div> 
            <div class="col-md-8">
            <div class="col-md-2 text-center">Category
               <select dir="ltr" style="text-align: center;" class="form-control" name="news_cat" >
                   <option value="National" <?= ($row["news_cat"] == "National")? "selected" : "" ?> >National</option> 
                   <option value="International" <?= ($row["news_cat"] == "International")? "selected" : "" ?> > International</option> 
               </select> 
             </div>  
              <div class="col-md-12">  
                  <textarea class="form-control" rows="7" name="detail" ><?= $row["post"] ?></textarea>
              </div>
                <button type="submit" class="btn btn-default text-align" style="background-color:#3c8dbc;color:white">Update</button>
                </div>
               </div>

         </form>

       <?php

        }

更新2:

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "alurdu_db";
    $id = $_GET['id'];
    mysql_query('SET CHARACTER SET utf8'); 
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    if ($conn->connect_error) 
    {    
        die("Connection failed: " . $conn->connect_error);
    }
    $sql = "SELECT * FROM news WHERE news_id='$id'";
        $result = $conn->query($sql);
         if ($result->num_rows >0) {

      while($row = $result->fetch_assoc()) {

      ?>

        <form action="up.php" method="post" enctype="multipart/form-data">
           <div class="form-group">
           <div class="col-md-2 text-center">News Title
            <input type="text" class="form-control" name="news_title" value="<?=$row["title"]?>">
           </div> 
            <div class="col-md-8">
            <div class="col-md-2 text-center">Category
               <select dir="ltr" style="text-align: center;" class="form-control" name="news_cat" >
                   <option value="National" <?= ($row["news_cat"] == "National")? "selected" : "" ?> >National</option> 
                   <option value="International" <?= ($row["news_cat"] == "International")? "selected" : "" ?> > International</option> 
               </select> 
             </div>  
              <div class="col-md-12">  
                  <textarea class="form-control" rows="7" name="detail" ><?= $row["post"] ?></textarea>
              </div>
                <button type="submit" class="btn btn-default text-align" style="background-color:#3c8dbc;color:white">Update</button>
                </div>
               </div>

         </form>

       <?php

        }

     } else {
        echo "Wrong Page";
    }

    $conn->close();

    ?>

关于php - 如何选择从mysql以php形式获取的值来更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43509782/

相关文章:

php - PHP 中的 cURL - 如何将 'copy as curl' 从 Chrome 转换为正确的 PHP

php - 如何计算 ACF 中继器输出中的总行数

mysql - MariaDB 区分大小写

mysql - 查询更改为将字段作为参数传递,并且不再有效

php - 试图理解 mysqli,需要一个以一列作为键、一列作为值的数组

javascript - 如果出现错误,则阻止表单提交

javascript - 在 WordPress 子主题中加载脚本时出现问题

php - Codeigniter Extend 自定义模型产生 fatal error

php - 使用android从WAMP服务器存储和检索图像

php - IT 支持 mySQL 数据库结构