由于某些原因,我的if语句不能像预期的那样工作。
$query = "SELECT title FROM blog";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
for ($j = 0; $j < $rows; ++$j)
{
if (isset($_POST['$j']))
{
$id = mysql_real_escape_string($_POST['id']);
$query = "DELETE FROM blog WHERE id='$id'";
mysql_query($query);
echo 'Deleted post.. ';
echo '<a href="blog.php">Click here</a>';
}
else
{
echo 'Failed!';
}
}发生的事情是“删除帖子..”这个"link“与我的表格博客中的行数相呼应。不过,我的表中只有一行被删除,这正是我想要的。每次都会按下一个按钮,所以它不应该回放"Deleted post..“只有一次,“失败了!”剩下的时间呢?谢谢=)
注意:我还是个编程新手,如果这个问题很愚蠢,我很抱歉。
注2:我在另一个页面上有许多按钮。它们用数字'1,2,3‘等来标记。
发布于 2012-08-22 15:18:47
更改:
$_POST['$j'] // here, due to the single quotes you're
// always testing for the literal `$j`, and not
// the value of current loop iteration.至:
$_POST[$j]发布于 2012-08-22 15:18:39
变量不是用单引号来解析的,你需要使用双引号。isset($_POST["$j"]
此外,您还试图在循环中一次又一次地删除相同的记录,检查是否设置了$_POST["$j"],但使用的是$_POST['id']
发布于 2012-08-22 15:21:36
尝尝这个
<?php
$query = "SELECT title FROM blog";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
for ($j = 0; $j < $rows; ++$j)
{
if (isset($_POST[$j]))
{
$id = mysql_real_escape_string($_POST['id']);
$query = "DELETE FROM blog WHERE id='" .$id ."'";
mysql_query($query);
echo 'Deleted post.. ';
echo '<a href="blog.php">Click here</a>';
}
else
{
echo 'Failed!';
}
}
?>https://stackoverflow.com/questions/12068041
复制相似问题