我刚刚完成了我的新闻发布系统,我需要帮助来制作新闻删除系统。
现在我有这个代码将每个帖子ID和TITLE加载到一个表格中,旁边还有一个复选框。
<?php
$news = mysql_query('SELECT `id`,`title` FROM news');
if (!$news)
{
exit('<p>Error retrieving news from database!<br />'.
'Error: '.mysql_error().'</p>');
}
while ($new = mysql_fetch_array($news))
{
$id = $new['id'];
$title = $new['title'];
echo "<tr style='background: #3D3D3d; width: 400px; font-family: Century Gothic; font-size: 15px;'>";
echo "<td style='padding-left: 5px'><input type='checkbox' name='id' value='$id' /></td> <td style='padding-left: 15px'>$id</td> <td style='padding-left: 15px'>$title</td>";
echo "</tr>";
}
?>
我想知道如何使用复选框删除每个数据库记录。
答案 0 :(得分:2)
首先我推荐一个Archive系统而不是删除只是为了保存数据,无论条目有多么重要,无论出于何种原因都要存储数据。
一个想法就是分解代码,以便于阅读:
将我的想法添加到代码
<?php //deletenews.php
//....
$result = $mysql_query("Call Delete_news_Entry($id)");
if (!$result)
{
die("Error deleting record from news" . mysql_error);
}
//.... end of php
?>
SQL过程
DELIMITER $$
DROP PROCEDURE IF EXISTS $$
CREATE PROCEDURE DB.Delete_news_entry(in_ID INTEGER)
BEGIN
DELETE FROM news WHERE id=in_ID;
END $$
DELIMITER ;
(如果您希望它在提交按钮上生效) 的JavaScript
<Script type='text/javascript'>
//depends on jquery
function deletenews(id)
{
var spanid = "#span"+id;
$.get("deletenews.php",
null,
function(){
Alert("Complete") //this is more or less for you to put your required code here
$(spanid).hide();
},
"html")
.error(function(){
Alert("error") // for your own code to go here
});
}
</script>
抱歉,只需修改代码
//在你的php代码中,对于该事件,尝试onclick或onchange来触发删除
echo "<span id='span$id'><td class='left'><input type='checkbox' name='id' value='$id' onclick='deletenews($id)' /></td><td class='left'>$id</td> <td class='left'>$title</td></span>";
将所有内容都放在一边便于阅读。
我一直在练习破解我的代码很长一段时间,我甚至绘制了我的所有文件关系的地图,而不是拥有一行php 1000行代码或更多代码。
答案 1 :(得分:-1)
现在看起来你只是在创建表行,但是我要继续并假设它们在table元素中。如果此表也在表单元素中,则可以在提交时删除带有选中复选框的所有记录。
您需要在表单的操作引用中使用PHP isset函数来检查是否已设置复选框以及是否运行了所有复选框。像这样:
<?php
foreach($_POST as $key =>$value){
if(isset($_POST[$key])){
$value = mysql_real_escape_string($value);
mysql_query("DELETE FROM table WHERE id = $value");
}
}
?>