gpt4 book ai didi

php - 删除没有 ID 的当前行(PHP、MYSQL、HTML)

转载 作者:行者123 更新时间:2023-11-29 19:02:54 25 4
gpt4 key购买 nike

我正在开发一个 HTML 网站。我正在使用 MySQL 数据库和 PHP。

到目前为止,这个概念相当简单:

  1. 用户可以通过单击添加按钮向网站添加一些文本 - 用户将被定向到带有对话框的页面

  2. 当他点击“提交”时,该文本就会出现在数据库中。

  3. PHP 代码知道:当数据库有条目时 -> 将文本回显到 HTML 网站上(我添加了一个 while 循环)

现在我的下一步是让用户删除文本。我在 HTML 网站上添加了一个垃圾桶字形图标。当用户单击它时,我希望删除表中的当前行。不幸的是什么也没发生!

代码如下:

<?php
$query = " SELECT * FROM Thesis";
$sql = mysqli_query($conn, $query);
$count = mysqli_num_rows($sql);

while ($row = mysqli_fetch_array($sql)){

?>


<div class="box green-box">

<p><div class="center-box-content">

<!--echo the title -->
<?php echo $row["title"]; ?>

<br>

<!--echo the description -->
<?php echo $row["description"]; ?>
</p>

<div class="lower-right-box-content">

<a href="adminview.php">
<span class="glyphicon glyphicon-trash glyphicon-trash" role="button">
<?php
$delquery = " DELETE * FROM Thesis";
mysqli_query($conn, $delquery);

?>
</span>
</a>

</div>

</div>
</div>
<?php };
?>

我做错了什么?我知道主要错误一定在某个地方在 $delquery.但我迷路了。我还知道,每行都有一个 ID 会更好。但我想避免它,因为既然我们处于 while 循环中,那么必须有一种方法可以删除 while 循环所在的当前行,对吧?这将是我首选的解决方案。

最后,我对编程很陌生,还不是最优雅的程序员,请友善:)

最佳答案

您需要为论文表提供一个简单的 ID,如下所示:

CREATE TABLE `Thesis` (
`thesis_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`thesis_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我会将 PHP 与显示代码分开,将 PHP 代码放在文件的顶部。为了安全性和更好的代码,我将使用带有 PDO 的绑定(bind)变量(而不是 mysqli)。但是坚持使用你的原始代码,我会像这样重写它:

<?php

// Establish the connection
$sql = mysqli_query($conn, $query);

// Delete a specific element
if (isset($_GET['delete_id']) && $_GET['delete_id'] > 0) {
$query = "DELETE FROM Thesis WHERE thesis_id = " . $_GET['delete_id'];
mysqli_query($conn, $query);
}

// Gather all the rows
$query = "SELECT * FROM Thesis";
$count = mysqli_num_rows($sql);
$rows = [];
while ($row = mysqli_fetch_array($sql)){
$rows[] = $row;
}

?>

<?php foreach ($rows as $row): ?>

<div class="box green-box">

<p><div class="center-box-content">

<!--echo the title -->
<?= $row["title"] ?>


<br>

<!--echo the description -->
<?= $row["description"] ?>

</p>

<div class="lower-right-box-content">

<a href="adminview.php?delete=<?= $row['thesis_id'] ?>">
<span class="glyphicon glyphicon-trash glyphicon-trash" role="button"></span>
</a>

</div>
</div>
</div>

<?php endforeach; ?>

foreach上面的调用是一个常见的 PHP 快捷方式,<?=标签将回显某些内容,而无需调用 echo 。不建议使用 GET 调用删除元素,但为了简单起见,我将其保留在适当的位置。

关于php - 删除没有 ID 的当前行(PHP、MYSQL、HTML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43719551/

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