使用选择表单更新Mysql中的数据

时间:2013-08-09 18:19:28

标签: php mysql

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

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

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

                <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数据库中,每个错误都有一个唯一的ID,所以我想我也必须选择那个错误ID。 我不知道如何从数据库中检索那个bug id。

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

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

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

您需要使用WHERE id = $id

更新此行

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

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

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