通过在select查询中应用的此循环选中行。
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo '<tr>';
$res = $row['userid'];
echo "<td><input type='checkbox' name='chk[]' value='$res'></td>";
echo
"<td>ID :{$row['userid']} <br> </td>".
"<td>ID :{$row['id']} <br> </td>".
"<td>{$row['name']} <br> </td>".
"<td>{$row['shifttime']} <br> </td></tr>";
$i++;
}
然后想通过ID来自复选框
来更新我的数据库 if(isset($_POST['chk'])){
$shift=$_POST['shiftTime'];
$chkarray = $_POST['chk'];
foreach ($chkarray as $val) {
$sql = "UPDATE user_shift_test2 SET shifttime ='$shift' WHERE id='" . $_POST["chk"] . "' ";
$result = mysql_query( $sql, $conn);
感谢。
答案 0 :(得分:0)
$_POST["chk"]
的值是数组,您应该使用IN
运算符。
不要使用foreach
此代码应该有效。
$vals = implode(",", $_POST["chk"]);
$sql = "UPDATE user_shift_test2 SET shifttime ='$shift' WHERE id IN (" . $vals . ")";
$result = mysql_query( $sql, $conn);
编辑:
正如您所说,您希望使用foreach
,这实际上不推荐,因为它将使用多个查询来更新。仍然是一个应该工作的代码片段。
if(isset($_POST['chk'])){
$shift = $_POST['shiftTime'];
$chkarray = $_POST['chk'];
foreach ($chkarray as $val) {
$sql = "UPDATE user_shift_test2 SET shifttime ='" . $shift . "' WHERE id= '" . $val . "'";
$result = mysql_query( $sql, $conn);
}
}
答案 1 :(得分:0)
您可以在查询中使用mysql -
$sql = "UPDATE user_shift_test2 SET shifttime = $shift WHERE id IN $_POST['chk'] ";
哟不需要执行循环。