在我的数据库中我有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());
}
}
帮我怎么做?
答案 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
。