我想更新我的SQL中的记录,但它更新所有数据没有得到正确的ID

时间:2017-04-20 18:04:28

标签: php mysql

这是显示我必须更新数据的数据我正确得到的数据我想按下更新按钮时使用up.php文件更新数据

<?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);
}
mysqli_set_charset($conn,"utf8");
$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">
              <input type="text" class="form-control" name="news_title" value="<?=$row["title"]?>">
            <div class="col-md-2 text-center">News Title</div>
         <button type="submit" class="btn btn-default text-align" style="background-color:#3c8dbc;color:white" value="">Update</button></a>
        </form>
<?php
    }

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

这是up.php文件我不知道为什么它没有获取id如果更新没有id它更新表的所有数据

<?php
$news_title = $_POST["news_title"];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "alurdu_db";
$news_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);
}
mysqli_set_charset($conn,"utf8");

$sql = " UPDATE news SET title='$news_title' WHERE news_id='$news_id' ";

if ($conn->query($sql) === TRUE) {
    echo "Updated";
 }
else {
 echo "Error: " . $sql . "<br>" . $conn->error;
 }

$conn->close();
?> 

1 个答案:

答案 0 :(得分:0)

看起来您的SQL语句不是封闭式引号。它应该是这样的:

$sql = "UPDATE news SET title='" . $news_title . "' WHERE news_id='" . $news_id . "'";