我空空如也地想出了如何使这件事成功的办法。
我所拥有的是一个表,列出了数据库的所有结果,在每一行的一侧,我都有一个按钮--希望--允许人们通过简单的0/1检查“退休”。现在,链接本身可以工作,但它提交页面上的每个按钮,即使实际上只单击了一个按钮。
我一开始确实尝试过将其作为表单使用,每一行都有一个提交按钮;结果相同。您可以看到,有一系列按钮(编辑、转移、繁殖),然后(退役)按钮应该触发一个更新,在db中用'1‘标记列,从’0‘开始。
我怎么解决这个问题?
图像以帮助可视化;单击时,每行右端的最后一个按钮应运行此更新。
显示可视化:https://i.stack.imgur.com/CulHt.png
显示SQL (正确):https://i.stack.imgur.com/hMbKg.png
echo '<a href="edit_horse.php?id='. $horseID .'" class="btn btn-sm btn-icon btn-light me-2" data-bs-toggle="tooltip" data-bs-placement="top" title="Edit"><i class="fas fa-pencil-alt"></i></a>';
echo '<a href="transfer_horse.php?id='. $memberID .'&horse='. $horseID .'" class="btn btn-sm btn-icon btn-light me-2" data-bs-toggle="tooltip" data-bs-placement="top" title="Transfer"><i class="fas fa-exchange-alt"></i></a>';
echo '<a href="breed_horse.php?id='. $memberID .'&horse='. $horseID .'" class="btn btn-sm btn-icon btn-light me-2" data-bs-toggle="tooltip" data-bs-placement="top" title="Breed"><i class="fas fa-venus-mars"></i></a>';
$retireSQL = "SELECT * FROM horses WHERE id = '$horseID'";
$retire = mysqli_query($sqlconnect, $retireSQL);
if(mysqli_num_rows($retire) != 0){
$retire_link = '<a class="btn btn-sm btn-icon btn-light me-2" href="my_horses.php?page='. $page .'&id='. $memberID .'&horse='. $horseID .'&action=retire" data-bs-toggle="tooltip" data-bs-placement="top" title="Retire"><i class="fas fa-heart-broken"></i></a>';
}
if(isset($horseID)) {
if (isset($action)) {
if ($action == 'retire') {
$retire_insertSQL = "UPDATE horses SET retired = 1 WHERE id = '$horseID'";
$retire_insert = mysqli_query($sqlconnect,$retire_insertSQL) or die(mysqli_error($sqlconnect));
echo $retire_insertSQL;
}
}
}
echo $retire_link;发布于 2022-07-30 02:35:56
我想出来了!我调用在while循环中创建的相同变量,并将其与其自身进行比较,而不是我所建立并推送到URL中的实际horseID。以下是工作代码:
<?php
// in the header of the page I ran a fresh $_GET against the horseID that I established in the link via variables
$horse_set_id = @($_GET['horse']);
echo '<a id="'. $horseID .'" class="btn btn-sm btn-icon btn-light me-2" href="my_horses.php?page='. $page .'&id='. $memberID .'&horse='. $horseID .'&action=retire" data-bs-toggle="tooltip" data-bs-placement="top" title="Retire"><i class="fas fa-heart-broken"></i></a>';
if (isset($action)) {
if ($action == 'retire' && $horse_set_id == $horseID) {
$retire_insertSQL = "UPDATE horses SET retired = 1 WHERE id = '$horse_set_id'";
$retire_insert = mysqli_query($sqlconnect,$retire_insertSQL) or die(mysqli_error($sqlconnect));
echo $retire_insertSQL;
}
}
?>https://stackoverflow.com/questions/73172090
复制相似问题