通过复选框选择行,通过此循环应用于选择查询。
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);
谢谢。
你可以在查询中使用 mysql -
$sql = "UPDATE user_shift_test2 SET shifttime = $shift WHERE id IN $_POST['chk'] ";
哟不需要执行循环。
$_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);
}
}