php - 从mysql表中删除记录

标签 php mysql delete-row

继续我简单的 CRUD,我又卡住了...

所以我创建了一个名为“usuaris”的表和一个名为“id”的列,这是我的自动增量,然后是另一个名为“usuari_nom”的列。现在,我想添加“删除功能”,所以当我显示我的表的记录时,我添加了一个删除它:

 <div id="main">
        <?php 

        global $conn;

    $query = "SELECT * FROM usuaris";

    if($grup_usuaris = mysqli_query($conn, $query)) {
         echo "<table>";
         echo "<tr><th>Usuaris</th><th>Accions</th></tr>";
             while($row = mysqli_fetch_assoc($grup_usuaris)) {
                 echo "<tr><td>" . $row['usuari_nom'] . "</td><td><a href=\"elimina_usuari.php?subject=" . $row['id'] . "\">Eliminar usuari</a></td></tr>";

             }
         echo "</table>";
         echo "<a href=\"nou_usuari.php\">+ Afegeix Usuari</a>";
         mysqli_free_result($grup_usuaris);
    } else {
        echo "query failed";
        echo("Error description: " . mysqli_error($conn));
    }                 
        ?>
    </div>

所以现在,如果我单击“eliminar usuari”,它会转到我要添加要删除的查询的文件,以及该用户的 ID;例如:“http://localhost/calendario/elimina_usuari.php?subject=6 ”。但是,在文件 elimina_usuari.php 中,如何选择 id 才能知道要删除的记录?

我想过 $_GET 但它似乎不起作用,无论是 $_POST:

elimina_usuari.php

<?php 

global $conn;

$usuari_id = $_GET['id'];
$query = "DELETE FROM subjects WHERE id = {$usuari_id} LIMIT 1";

$result = mysqli_query($conn, $query);

if ($result && mysqli_affected_rows($conn) == 1) {
     redirect_to("calendari.php");      
} else {
echo "no eliminat";
}
?>

知道如何获取它的 ID 吗?我应该以某种方式从 url 中获取它吗?

谢谢

最佳答案

你做得很好。

只需要改变这个

$usuari_id = $_GET['id'];

$usuari_id = $_GET['subject'];

当你设置subject而不是 id在你的网址中

http://localhost/calendario/elimina_usuari.php?subject=6
                                               ^  

如果你想处理id , 比如 $_GET['id'] ,您需要更改 URL。

"http://localhost/calendario/elimina_usuari.php?id=6"
                                                ^ change here   

编辑

根据您的评论

您可以使用任何 $variable$_POST$_GET ,与数据库列名无关。

就像你可以使用下面的一样。

"http://localhost/calendario/elimina_usuari.php?eve_mf=6"

elimina_usuari.php页面,

$id = $_GET['eve_mf'];

第二部分,为什么我可以这样做而且我不需要像在我的数据库表中那样调用它 id?

同样,这不是您所说的 variables 的问题在您的本地环境中,您要做的(并且应该注意的)就是在您的 sql query 中放置正确的参数.

$query = "DELETE FROM subjects WHERE id = {$usuari_id} LIMIT 1";

在这里id是数据库中列名的名称。即使您愿意,也不能在这里更改它。

然而,$usuari_id是您的局部变量,您可以随意更改它。

希望我已经解释了您要查找的内容:)

关于php - 从mysql表中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33212927/

相关文章:

PHP+Mysql 在一行中显示多行的值

php - 在 Laravel 中格式化日期时显示错误

JavaScript 类型错误 : Cannot read property 'id' of undefined

PHP MYSQL DELETE FROM WHERE AND 子句

ios - Sqlite 行不删除

php - 异步使用 Guzzle promises

php - 使用 Quickfix 通过 VIM 调试 PHP

mysql - 获取过去 12 天内过期的所有 expiry_date

mysql - 仅选择与列表列值匹配的一行

ON DELETE CASCADE 的 MySQL 语法错误 #1064