从下拉菜单中选择选项后无法更新记录

时间:2014-12-15 04:50:12

标签: php mysql

作业背景:

我有一个下拉菜单,我从数据库填充。根据选项用户从下拉菜单中选择,我需要更新所选记录。现在有关数据库和记录类型的一些信息:有5种类型的投诉:电气,机械,电话,消防系统和优先权。这些投诉中的每一个都可以具有“开放”或“关闭”状态。因此,当用户选择“电气类型”时,将出现电气类型的所有“开放”投诉ID(投诉ID是同一记录中的字段)。管理员选择id后,将更新相应的记录以将状态更改为“关闭”。

现在我的问题:

我可以显示所有投诉ID,但在选择相关ID并点击提交按钮后,记录的状态不会变为“关闭”。

代码

$user="root";
$password="";

$database="complaint_data";
$localhost="localhost";
mysql_connect($localhost,$user,$password);
@mysql_select_db($database) or die("Unable to open database");

echo ('<form action="" method="post"><br>');
echo ('<center><select name = "complaint"></center>');
echo ('<option value ="Electrical"> Electrical </option>');
echo ('<option value ="Mechanical"> Mechanical </option>');
echo ('<option value ="Telephone"> Telephone </option>');
echo ('<option value ="Fire"> Fire </option>');
echo ('<option value ="Priority"> Priority </option>');
echo ('<center><input type="submit" name="Submit" ></center>');
echo ('</form>');

if(($_SERVER["REQUEST_METHOD"]=="POST") and (!empty($_POST['Submit']) ) ){
$t=$_POST['complaint'];
switch ($t) {

case "Electrical":
$q="SELECT `complaintid` , `comment`  FROM `complaints` WHERE `status`='open' and `type`='Electrical' ORDER BY `id` DESC";
$sql=mysql_query($q);
$count=mysql_num_rows($sql);
    if($count!=0) {
    echo ('<form action="" method="post"><br>');
    echo ('<center><select name = "complaint1"></center>');
        while($row=mysql_fetch_array($sql)) {
        $cmp=$row['complaintid'];
        echo "<option value =\"$cmp\"> $cmp </option> <br>";
        }
    echo ('</select>');
    echo ('<center><input type="submit" name="Submit1" ></center>');
    echo ('</form>');
            if(($_SERVER["REQUEST_METHOD"]=="POST") and (!empty($_POST['Submit1'])) ) {
            $cmpi=$_POST['complaint1'];
            echo $cmpi;
            $query="UPDATE complaints SET status='close' WHERE complaintid=`$cmpi` ";
            mysql_query($query);
            }
    }
    if($count=='0') {
    echo "No record of electrical type found";
    }
mysql_close();
break;

顺便说一下,我只包含了电气类型的片段,一旦它工作,我也会把它复制到其他类型! TIA:)

1 个答案:

答案 0 :(得分:0)

试试这个:

$query="UPDATE complaints SET status='close' WHERE complaintid=$cmpi";

删除了周围的$ cmpi。