gpt4 book ai didi

PHP MySQL 通过附加到 "object"的删除按钮从数据库中删除行

转载 作者:行者123 更新时间:2023-11-30 00:53:34 25 4
gpt4 key购买 nike

[已修复]我解决了我的问题。正如 Fred -ii- 建议的我访问过this Q&A on SO 。我看到他使用了复选框,这似乎比按钮有用得多,因为您可以一次取出多个对象。他还将对象的 id 附加到按钮上,就像 Subin 一样。也建议。

<form action="" method='POST'>
<input style='display:block; margin:0 auto;'type='submit' name='delete_button' value='<?php echo row['id']; ?>'/>
</form>

这是固定代码。我现在可以单独删除这些框。感谢您的所有建议。我现在也在使用 mysqli。

$query = mysqli_query($connect, "SELECT * FROM shouts ORDER BY `id` DESC LIMIT 5") or die('<p id="formbox" style="text-align:center;">There was an unexpected error grabbing news from the database</p>');

while ($row = mysqli_fetch_array($query)) {
$title2 = $row['title'];
$post2 = $row['post'];
$date2 = $row['date'];
$author = $row['author'];

echo '<div class="news-title"><b style="float:left;">'.$author.'</b><b style="text-align:center; color:green;">'.$title2.'</b><a href="">'.$date2.'</a></div>';
echo '<div class="news-body">'.$post2.'</div>';
if (isset($_SESSION['username']) && ($_SESSION['level'] >= 3 || $_SESSION['group'] == 'Admin')) {
?>
<form action="" method='POST'>
<input style='display:block; margin:0 auto;'type='submit' name='delete_button[]' value="<?php echo $row['id']; ?>"/>
</form>
<?php
}
echo '<br>';
}
if(isset($_POST['delete_button'])) {
$boxid = $_POST['delete_button'];
for($i=0;$i<count($boxid);$i++){
$del_id = $boxid[$i];
mysqli_query($connect, "DELETE FROM `shoutbox`.`shouts` WHERE `shouts`.`id` = '$del_id'") or die('<p id="formbox" style="text-align:center;">There was an unexpected error deleting the post from the database</p>');
}
}

[问题]所以目前我一直在开发一个网站只是为了我的学习目的,谷歌到目前为止一直提供了很好的帮助。虽然,我似乎无法解决这个问题。我有一个“新闻提要”

http://i.stack.imgur.com/oieXJ.png

它不允许我发布图像,但它是我可以给出的唯一视觉想法。除非你想访问我的主页http://yuriah.net新闻提要就在那里,当然没有删除按钮。

我想为每个帖子添加一个“删除”按钮,以便我可以在需要时单独删除每个帖子。我当前使用的代码有问题。它会从数据库中删除所有内容,但我只想删除单击“删除”的“帖子”。这是我的来源:

$query = mysql_query("SELECT * FROM shouts ORDER BY `id` DESC LIMIT 5") or die('<p id="formbox" style="text-align:center;">There was an unexpected error grabbing news from the database</p>');

while ($row = mysql_fetch_array($query)) {
$title2 = $row['title'];
$post2 = $row['post'];
$date2 = $row['date'];
$author = $row['author'];
$boxid = $row['id'];

echo '<div class="news-title"><b style="float:left;">'.$author.'</b><b style="text-align:center; color:green;">'.$title2.'</b><a href="">'.$date2.'</a></div>';
echo '<div class="news-body">'.$post2.'</div>';
if ($_SESSION['level'] > 3 || $_SESSION['group'] == 'Admin' || $_SESSION['group'] == 'Owner') {
?>
<form action="" method='post'>
<input style='display:block; margin:0 auto;'type='submit' name='delete_button' value='Delete' />
</form>
<?php
if(isset($_POST['delete_button'])) {
$con = mysql_query("DELETE FROM `shoutbox`.`shouts` WHERE `shouts`.`id` = '$boxid'") or die('<p id="formbox" style="text-align:center;">There was an unexpected error deleting the post from the database</p>');
header('refresh:1; url=/');
mysql_close($con);
}
}
echo '<br>';
}

我对 PHP HTML CSS MYSQL 等还很陌生。我愿意接受所有建议和评论。任何帮助将不胜感激,谢谢。

最佳答案

首先您选择几行:

mysql_query("SELECT * FROM shouts ORDER BY `id` DESC LIMIT 5")

然后你为每一行获取一个数组

while ($row = mysql_fetch_array($query)) {

然后设置该行的 boxid,然后在该行的循环内运行删除查询,您的 WHERE 子句将在其中查找该 boxid。

因此,根据此代码流程,您将始终删除表中的所有行。

mysql_query("DELETE FROM `shoutbox`.`shouts` WHERE `shouts`.`id` = '$boxid'")

现在,真正的问题是,如何解决这个问题?

在您的 select 语句中,只需添加一个 where 子句,该子句仅返回具有 boxid 或您实际需要的任何 id 的行,以便仅返回一行(或恰好返回要删除的行)

"SELECT FROM `shoutbox`.`shouts` WHERE `shouts`.`id` = '$someSortOfID'"

此外,mysql_* 已被弃用,因此 please see the following documentation关于如何“升级”到新标准 mysqli。

关于PHP MySQL 通过附加到 "object"的删除按钮从数据库中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20774279/

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