0

我正在构建一个错误跟踪工具。

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

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

                <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();

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

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

谁能帮我?

4

1 回答 1

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

你需要更新这一行WHERE id = $id

您当前没有指定要更新的错误,因此您更新了所有错误。

作为补充说明,整个社区将追随您使用旧的 mysql 扩展。看看mysqlior PDO,我保证,从长远来看,这是值得的。

哎呀,你已经提到了,没关系。

于 2013-08-09T18:21:01.717 回答