首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码正在更新所有的db行,而只有一个由链接触发。

代码正在更新所有的db行,而只有一个由链接触发。
EN

Stack Overflow用户
提问于 2022-07-30 00:32:30
回答 1查看 53关注 0票数 -3

我空空如也地想出了如何使这件事成功的办法。

我所拥有的是一个表,列出了数据库的所有结果,在每一行的一侧,我都有一个按钮--希望--允许人们通过简单的0/1检查“退休”。现在,链接本身可以工作,但它提交页面上的每个按钮,即使实际上只单击了一个按钮。

我一开始确实尝试过将其作为表单使用,每一行都有一个提交按钮;结果相同。您可以看到,有一系列按钮(编辑、转移、繁殖),然后(退役)按钮应该触发一个更新,在db中用'1‘标记列,从’0‘开始。

我怎么解决这个问题?

图像以帮助可视化;单击时,每行右端的最后一个按钮应运行此更新。

显示可视化:https://i.stack.imgur.com/CulHt.png

显示SQL (正确):https://i.stack.imgur.com/hMbKg.png

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

发布于 2022-07-30 02:35:56

我想出来了!我调用在while循环中创建的相同变量,并将其与其自身进行比较,而不是我所建立并推送到URL中的实际horseID。以下是工作代码:

代码语言:javascript
复制
<?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;
  }
}
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73172090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档