【发布时间】:2019-10-15 15:48:59
【问题描述】:
当我点击更新按钮时,SQL 查询会更新最后一条记录,而不是想要的记录
当显示几门课程时,我想给用户确认其中一门课程的权利,当我点击更新按钮时,它会更新最后一条记录
<?php
$cc = mysqli_query($mysqli, "SELECT * from course WHERE c_email ='$emailu' AND course_situation='pending'");
while($ccc = mysqli_fetch_array($cc)) {
$idcourse = $ccc['idcourse'];
$city = $ccc['idville'];
$pickup = $ccc['course_depart'];
?>
<tr>
<td><?= $idcourse ?></td>
<td><?= $pickup ?></td>
<td><?php echo $ccc['course_date'] ?>, <?php echo
$ccc['course_heure'] ?></td>
<td>
<?php
if($ccc['course_situation'] == "pending") { ?>
<span class="badge badge-danger">Pending</span>
<?php } else { ?>
<span class="badge badge-success">Confirmed</span>
<?php } ?>
</td>
<td><?php echo $ccc['c_phone'] ?></td>
<td><?php echo $ccc['c_phone'] ?></td>
<td><?php echo $ccc['idclient'] ?></td>
<td>
<button type="submit" name="cancelcourse" class="btn btn-danger btn-xs"><i class="icon md-check" aria-hidden="true"></i> Update</button>
</tr>
<?php }
if(isset($_POST["cancelcourse"])) {
$query = "UPDATE course SET id='$idu' AND course_situation='confirmed' WHERE idcourse='$idcourse' ";
if(mysqli_query($mysqli, $query)) {
echo "<div class=' alert alert-success' style='padding-left:150px'>
<strong>Success!</strong> Event page updated.</a>.
</div>";
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=index.php">';
} else {
echo "<div class='alert alert-danger'>
<strong>ERROR!</strong> We invite you to try Again Later.
</div> " . mysqli_error($mysqli);
}
}
【问题讨论】:
-
我什至没有看到这里的表格。
-
UPDATE 语法不正确。
-
您没有从假定的表单(不存在)中获取任何值。您正在遍历值以输出表,然后使用您在循环中使用的值运行更新查询,因此这些变量被设置为表中最后一行的值。在这里重新考虑您的设计。
-
老实说,您最好回到基础知识并查看一些有关 HTML 表单的指南/教程以及如何使用 PHP 处理它们并将数据安全地保存到数据库中。跨度>
-
你的代码很容易受到sql注入。