0

在我的数据库中,我有 20 多列。我通过输入表单添加了 19 列并成功存储在 db 中。我在我的主页中从 db 获取几行。在我的主页 1 中还有更多列。即状态栏,它是一个组合框类型。如果我单击状态列,它应该显示 4 个值。我想选择其中一个值,然后当我单击保存按钮时,它必须以相同的 ID 存储在 db 中。怎么做?我试过但它没有在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());
}
}

帮我怎么做?

4

3 回答 3

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

此外,您使用 nameupdate两次,一次<select>一次 in <input>,从<input>外面取出那个,使其成为隐藏字段,其中包含您的行的名称id和值:slno

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='id' type='hidden' value='".$a_row['slno']."';>
    <input type='submit'>Save</button>
  </form>
</td>\n";
于 2013-10-05T08:24:48.183 回答
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'");
    }
}
?>
于 2013-10-05T07:58:26.417 回答
-1

你没有提交任何idstatus db.

于 2013-10-05T07:49:33.693 回答