使用php编码更新mysql中的现有行

时间:2013-10-05 07:35:17

标签: php mysql button save

在我的数据库中我有20多列。我在输入表单中添加了19列,并成功存储在db中。我在主页面中从db中获取了几行。在我的主页1中有更多专栏。这是状态列,它是一个组合框类型。如果我单击状态列,它应显示4个值。我想选择其中一个值然后当我单击保存按钮时,它必须存储在具有相同ID的数据库中。怎么做?我试过但它没有在mysql db中更新...

主页组合框编码:

echo "\t<td><form action=statusdb.php method=post>
<select name=update><option value=empty></option><option value=Confirm>Confirm</option><option value=Processing>Processing</option><option value=Pending>Pending</option><option value=Cancelled>Cancelled</option></select>
<input name=\"update[".$a_row['slno']."]\"; type=submit id=id value=Save></form>
</td>\n";

状态数据库编码:

if (isset($_GET['id']))
{ 
$id = mysql_real_escape_string($_GET['id']);
$sql = mysql_query("UPDATE guestdetails SET status = '" . $_POST['update'] ."'");
if(!$sql)
{
    die("Error" .mysql_error());
}
}

帮我怎么做?

3 个答案:

答案 0 :(得分:1)

你的IF应该是$ _POST,而不是$ _GET 另外,需要添加WHERE子句,如下所示:

if (isset($_POST['id']))
{ 
  $id = mysql_real_escape_string($_POST['id']);
  $update= mysql_real_escape_string($_POST['update']);

  $sql = mysql_query("UPDATE guestdetails SET status = '$update' WHERE id='$id'");
if(!$sql)
{
    die("Error" .mysql_error());
}
}

此外,您使用名称update两次,一次在<select> <input> {}},从<input>取出,将其隐藏为{{1}您的id行的值和值:

slno

答案 1 :(得分:0)

尝试如下:

<form action="statusdb.php" method="post">
<?php
while($a_row = mysql_fetch_array($sql)) {
    $sl_no = $a_row['slno'];
    echo '<select name="update['.$sl_no.']"><option value=empty></option><option value=Confirm>Confirm</option><option value=Processing>Processing</option><option value=Pending>Pending</option><option value=Cancelled>Cancelled</option></select> '; 
    echo '<input type="hidden" name="sl_no[]" value="'.$sl_no.'" />'; 
} 
?>
<input name="update_rows" type="submit" value="Save">
</form>

<?php
if(isset($_POST['update_rows'])) {
    $nums = $_POST['sl_no'];
    $update = $_POST['update'];
    foreach($nums as $sl) {
        $sl_no = $sl;
        $val = $update[$sl_no];
        $sql_update = mysql_query("UPDATE guestdetails SET status = '$val' WHERE sl_no='$sl_no'");
    }
}
?>

答案 2 :(得分:-1)

您没有向id提交任何status db