gpt4 book ai didi

php - 正在更新错误的数据库记录

转载 作者:行者123 更新时间:2023-11-29 00:21:19 24 4
gpt4 key购买 nike

也许我累了,也许我只是做错了,但不管怎样,有些事情是不对的。

勾选该复选框时,数据库会更新,但 $id 会被忽略,并且只会更新 pu_time 列为空的第一条记录。应该发生的是当复选框被勾选时,当前时间被插入到具有提供的 id 的相应记录中。我可以回显 $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>";
}

最佳答案

只需两个更改即可解决您的问题:

将行 ID 添加到隐藏字段中,然后提交:

<?php echo '
<td><form id = "pu_time">
<input name="pick_up_time" type="checkbox" value="" onchange="if(this.checked)this.form.submit()" />
<input name="rowId" type="hidden" value="'.$id.'" />
</form></td>';

当然,数据库更新部分将在循环之外,以避免在我们重定向到新页面(或同一页面)时不必要的数据库调用:

if (isset($_GET['pick_up_time']) && !empty($_GET['rowId'])){ // must have id;
$pick_up = date('g:ia');
$rowId = $_GET['rowId']; //mark this!
$update_p = "UPDATE dispatch SET pu_time = '{$pick_up}' WHERE id = '{$rowId}'";
mysql_query($update_p,$con)
or die;
unset($_GET['pick_up_time']);
echo '<script type="text/JavaScript">
window.location.href = "new_index.php";
</script>';
}

//and then write your code what is currently in the first line: $sql = "SELECT * FROM dispatch WHERE dr ...... and so;

关于php - 正在更新错误的数据库记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20964654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com