Может быть, я устал, может быть, я просто собираюсь сделать это неправильно, но что-то в этом случае не так.Неверная запись БД обновляется
Когда галочка отмечена, БД обновляется, но идентификатор $ id игнорируется и обновляется только первая запись с пустым столбцом pu_time. Предполагается, что это произойдет, когда галочка отмечена, текущее время вставляется в соответствующую запись с предоставленным идентификатором. Я могу повторить $ id, но он по-прежнему игнорируется.
Я успешно сделал эту работу с текстовым полем ....
$sql = "SELECT * FROM dispatch WHERE driver = '' OR pu_time = '' OR do_time = ''";
$result = mysql_query($sql);
$i = 0;
$color1 = "#2b2823";
$color2 = "#333333";
while($row = mysql_fetch_array($result)){
$id = $row['id'];
if($i%2 == 1) {$color = $color1;}
else {$color = $color2;}
echo "<tr style='background-color: $color'>";
echo '<td><input name="id" type="hidden" value="'.$row['id'].'" />'.$row['call_time'].'</td>';
echo "<td>".$row['start_address']."</td>";
echo "<td>".$row['end_address']."</td>";
echo "<td>".$row['phone']."</td>";
echo "<td>".$row['puat']."</td>";
if (isset($row['pu_time']) === true && empty($row['pu_time']) === true){
echo '<td>
<form id = "pu_time">
<input name="pick_up_time" type="checkbox" value="" onchange="this.form.submit()" />
</form></td>';
if (isset($_GET['pick_up_time'])){
$pick_up = date('g:ia');
$update_p = "UPDATE dispatch SET pu_time = '{$pick_up}' WHERE id = '{$id}'";
mysql_query($update_p,$con)
or die;
unset($_GET['pick_up_time']);
echo '<script type="text/JavaScript">
window.location.href = "new_index.php";
</script>';
}
}
else {
echo "<td>".$row['pu_time']."</td>";
}
Функции mysql устарели, используйте mysqli. – BuddhistBeast
Вы должны действительно использовать подготовленные заявления PDO или mysqli. Конкатенация в SQL очень плохая и опасная. –