PHP更新未使用复选框更新数据库

时间:2013-08-31 20:02:59

标签: php mysql

对于所有我有一个奇怪的问题当我尝试用复选框更新我的数据库表时它只需要一个值而其余所有其他只是在这里使用它是我的PHP代码到目前为止

foreach ($_POST['choice'] as $id){
    $price=$_POST['price'][$id];
    $availability=$_POST['availability'][$id];

    $result1=mysql_query("UPDATE store SET storeid='".$id."',availability='".$availability."', price='".$price."'  WHERE productid='".$par1."'");
}

是的,你是对的,我很抱歉缺乏信息。这是我的HTML代码

echo "<td><input type='text' id='availability[".$row->id ."]' name='availability[".$row->id ."]'  value='".$row->diathesimotita ."' size='20'/></td>";
echo "<td><input type='text' id='price[".$row->id ."]' name='price[".$row->id ."]'  value='".$row->price ."'  size='10'/></td>";
echo "<td><input type='checkbox' id='choice[".$row->id ."]' name='choice[".$row->id ."]'  value='".$row->id ."'   /></td>";
echo"</tr>";

所以我试图使用复选框获取同一行中的文本框值,但它只获取第一个选中的ckeckbox

2 个答案:

答案 0 :(得分:0)

复选框仅在选中时发布值。在尝试在查询中使用它们之前,您应该先验证它们或设置一个值(为安全起见,如果没有别的!)。例如,在处理代码的顶部执行此操作:

$checkbox_val = (!empty($_POST['choice']) ? 'Yes' : 'No');  //example only assuming non-array for 'choice'

如果POST值为空或未设置,则会将值设置为“否”,从而保证始终具有值。您可以将值更改为0/1,true / false等。

此外,如果没有看到3 $ _POST数组中的内容,我们就无法告诉您是否获得了$price等的正确值。

答案 1 :(得分:0)

PHP代码看起来很好;我们需要查看HTML代码,但无论如何都要在SQL中尝试:

UPDATE store SET storeid='".$id."' , availability='".$availability."' , price='".$price."'     WHERE productid='".$par1."'" );

空间在SQL中真的很重要。如果这不起作用,请向我们展示HTML代码。