使用select表单更新Mysql中的数据


update data in Mysql with a select form

我正在构建一个bug跟踪器工具。

您可以将Bug添加到项目中,这些Bug具有状态(未解决或已解决)。

使用此选择表单,您可以更改项目页面上的状态,所有错误都显示在一个表中:

                <form action="classes/bugStatus.class.php" method="post">
                  <select name="status" id="status" onchange='this.form.submit()'>
                       <option>-Select-</option>
                       <option value="Solved">Solved</option>
                       <option value="Unsolved">Unsolved</option>
                   </select>
                <input type='hidden' name='ID' value="<?php echo $id;?>"> 
                <noscript><input type="submit" value="Submit"></noscript> 
                </form>

对于此类,状态将发生变化:

 $status = $_POST['status'];
 $id     = $_POST['ID'];
$sql="UPDATE bugs SET status = '$status'";  
 $result = mysql_query($sql); 
 $result = mysql_real_escape_string($sql); 
 if($result){
      header('Location: ../projectpage.php?id='.$id); 
      } else { 
      echo "There is something wrong. Try again later."; } 
      mysql_close();

问题是,当我选择某个东西时,它会改变该项目中每个bug的每个状态,我不希望这样。我只想更改所选bug的状态。在MySQL数据库中,每个bug都有一个唯一的ID,所以我想我也必须选择那个bug ID。我不知道如何从数据库中检索那个错误id。

这个表单不是sql注入证明的,也不是mysqli,我稍后会更改它。

有人能帮我吗?

$sql="UPDATE bugs SET status = '$status'"; 

您需要使用WHERE id = $id 更新此行

您当前没有指定要更新的bug,所以您更新了所有bug。

作为一个补充,整个社区都会因为你使用了旧的mysql扩展而对你穷追不舍。看看mysqliPDO,我保证,从长远来看,这是值得的

哦,你已经提到了,没关系。