我需要删除一条记录,在这种情况下是我论坛中的一个类别,根据其ID从数据库中删除。
<?php
if(isset($_SESSION['signed_in']) && $_SESSION['user_level'] == 1)
{
?>
<td>
<form method="post">
<input type="hidden" value="<?= ['cat_id']; ?>">
<input type="submit" name="submit" value="Remover" />
</form>
<?php
if(isset($_POST['submit']))
{
mysql_query("DELETE FROM categories where cat_id = 'cat_id'");
}
?>
</td>
<?php
}
?>
我无法获得一个“好”的方式...... :(
编辑:这是一个编程课而不是真正的论坛!!
答案 0 :(得分:1)
您的HTML输入字段需要一个名称,以便PHP可以识别它。 然后,在您尝试删除类别的代码块中,您需要使用$_POST数组访问类别ID。
你想要做的另一件事就是阅读SQL injections的危险。 如果你现在只是在玩PHP和MySQL:Go Ahead。但是如果你真的想要发展,也许你应该读一些其他的东西,即使它最初看起来有些过分:PHP The Right Way。
尽管如此,试试这个:
<?php
if(isset($_SESSION['signed_in']) && $_SESSION['user_level'] == 1)
{
?>
<td>
<form method="post">
<input type="hidden" name="hid_catid" id="hid_catid" value="<?php echo $cat_id; ?>">
<input type="submit" name="submit" value="Remover" />
</form>
<?php
if(isset($_POST['submit']))
{
$query = "DELETE FROM categories where cat_id = '".(int)$_POST['hid_catid']."'";
mysql_query($query);
}
?>
</td>
<?php
}
?>
- &GT; 隐藏字段应具有名称和要使用的ID
- 感谢
答案 1 :(得分:0)
您的隐藏输入字段需要在帖子后可以访问的名称。此外,我不确定['cat_id']
是否是引用此变量的正确方法。它来自哪里?
<form method="post">
<input type="hidden" name="cat_id" value="<?= $cat_id ?>">
<input type="submit" name="submit" value="Remover" />
</form>
然后你的查询必须看起来像这样正确地从帖子中获取id。
mysql_query("DELETE FROM categories where cat_id = " . mysql_real_escape_string($_POST['cat_id']));