gpt4 book ai didi

php - 该行在 MySQL 中没有被删除并且 PHP 没有返回错误

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:51 25 4
gpt4 key购买 nike

我有一个代码应该通过使用 SQL 查询加载 remove.php 文件来从表中删除选定的 ID 行。问题是它不起作用,但我没有收到任何错误或通知。我的变量似乎可以很好地转移到 URL 中的 remove.php,如 '<a href="remove.php?='.$Fvalue.'">'被解释为

remove.php?=1

例如,其中 1 是行的主 ID。

这里是与问题相关的所有代码:

编辑:

为带有 REMOVE 按钮的产品表呈现的 HTML:

    <!-- Products table -->

<table class="table">
<thead>
<tr>
<th scope='col'>id </br ></th><th scope='col'>name </br ></th><th scope='col'>price </br ></th><th scope='col'>amount </br ></th><th scope='col'>category_name </br ></th> </tr>
</thead>
<tbody>

<tr><td data-id="1"><a href="remove.php?remove_id=1"> REMOVE</a></td>
<td>iPhone 7</td>
<td>800</td>
<td>15</td>
<td>Smartphones</td>
</tr><tr>
<td data-id="42"><a href="remove.php?remove_id=42"> REMOVE</a></td>
<td>Motorola </td>
<td>3000</td>
<td>5</td>
<td>Smartphones</td>
</tr><tr><td data-id="2"><a href="remove.php?remove_id=2"> REMOVE</a></td><td>Macbook Pro 2015</td>
<td>1300</td><td>10</td>
<td>Computers</td></tr><tr><td data-id="4"><a href="remove.php?remove_id=4"> REMOVE</a></td>
<td>Dell XPS</td>
<td>1400</td>
<td>6</td><td>Computers</td>
</tr><tr><td data-id="41"><a href="remove.php?remove_id=41"> REMOVE</a></td>
<td>CHROMEBOOK</td>
<td>5600</td>
<td>8</td>
<td>Computers</td></tr></tbody>

更新的 PHP:

 <?php
foreach ($newArray as $value) {
echo '<tr>';
foreach ($value as $key => $Fvalue) {

$remove = $value['id'] = " REMOVE";
if($value[$key] == $value['id']) {
echo '<td data-id="'.$Fvalue.'">' . '<a href="remove.php?remove_id='.$Fvalue.'">' . $remove . '</a>' . '</td>'; // will show all values.
} else {
echo '<td>' . $Fvalue . '</td>';
}
}
echo '</tr>';
}
?>

删除.php

<?php
require_once ("navigation.php");
require_once("database_connection.php");
$id = !empty($_GET['remove_id']) ? $_GET['remove_id'] : null;
if($id != null) {
$deleteProducts = "DELETE FROM `products` WHERE `id` = '.$id.'";
mysqli_query($dbc, $deleteProducts);
}

寻找任何帮助我发现任何问题,因为我没有收到任何错误,也不知道为什么代码没有删除表中的一行。谢谢。

最佳答案

您必须传递与您发送的值关联的 key ;

<a href="remove.php?remove_id='.$Fvalue.'">' . $remove . '</a>

注意 remove_id 部分。

现在,您可以在 PHP 中检索该值;

$id = !empty($_GET['remove_id']) ? $_GET['remove_id'] : null;
if($id !== null) {
$deleteProducts = "DELETE FROM `products` WHERE `id`='{$id}'";
mysqli_query($dbc, $deleteProducts);
}

在我的代码中,我还解决了您在代码中遇到的问题。您有 $id = (isset($_GET['$Fvalue']));,它将始终将 $id 设置为 truefalse,不是您传递的 ID。

您还可以使用双引号代替单引号来清理 HTML 变量。

if($value[$key] == $value['id']) {
echo "<td data-id='{$Fvalue}'><a href='remove.php?remove_id={$Fvalue}'>{$remove}</a></td>"; // will show all values.
} else {
echo "<td>{$Fvalue}</td>";
}

重要提示: Little Bobbyyou may be at risk for SQL Injection Attacks .了解 Prepared Statementsparameterized queries .

关于php - 该行在 MySQL 中没有被删除并且 PHP 没有返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55269593/

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