如何解决删除查询!我已经尝试了已有的帖子没用
| 我删除用户query.php
选择的查询的第一页,这绝对正常:
<form method=post action=\"delete.php\">
List of queries<br/>
<?php
$ebits = ini_get(\'error_reporting\');
error_reporting($ebits ^ E_NOTICE);
mysql_connect(\"localhost\",\"root\",\"\") or die(mysql_error());
mysql_select_db(\"testdb\") or die(mysql_error());
echo \"<br />\";
$query = \"select * from queries \";
$result = mysql_query($query) or die(mysql_error());
$count=mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
print \"<input type=\'checkbox\' name=\'Query[]\' value=\\\"\".$row[\'queryId\'].\"\\\"> \";
echo \" \". $row[\'name\'].\" \". $row[\"address\"].\" \". $row[\"contactNo\"].\"
\". $row[\"query\"];
echo \"<br />\";
}
?>
<input type=\"submit\" value=\"Delete\" name=\"Delete\">
<br/>
</form>
我尝试使用第二页delete.php
的以下代码,但似乎无济于事。
代码1:
<?php
if($_POST[\'Delete\'])
{
if(count($_POST[\'checkbox\']) > 0) {
foreach($_POST[\'checkbox\'] as $checkbox)
{
$del_id=$checkbox;
$sql = \"DELETE * FROM queries WHERE `queryId`= \'$del_id\'\";
$result = mysql_query($sql);
mysql_error();
}
echo \"Selected Rows deleted\";
} else {
$NEW=\"Nothing to Delete\";
}
}
?>
代码2:
<?php
if(($_POST[\'Delete\']))
{
$count=array();
$count=$_POST[\'checkbox\'];
for($i=0;$i<count($count);$i++){
$del_id = $checkbox[$i];
$sql = \"DELETE FROM queries WHERE queryId=\'$del_id\' \";
$result = mysql_query($sql);
}
$NEW=\"Selected records Deleted\";
}
var_dump($_POST[\'checkbox\']);
var_dump($count);
?>
解决方法
您的复选框名称为\“ Query \”,但您以
$_POST[\'checkbox\']
的身份对其进行访问。应该是$_POST[\'Query\']
。
编辑检查您更新的代码:
if($_POST[\'Delete\']) {
if(count($_POST[\'Query\']) > 0) {
foreach($_POST[\'Query\'] as $checkbox) {
$del_id=$checkbox;
$sql = \"DELETE * FROM queries WHERE queryId= \'$del_id\'\";
$result = mysql_query($sql);
mysql_error();
}
echo \"Selected Rows deleted\";
}
else {
$NEW=\"Nothing to Delete\";
}
}
代替这个:
$del_id=$checkbox;
做这个:
// if queryId is numeric
$del_id=intval($checkbox);
这样可以确保您使用的值是数字,而不是用户的潜在恶意输入。我假设ѭ10是数字。如果不是,那么您需要这样做:
// if queryId is not numeric:
$del_id = mysql_real_escape_string($checkbox);
您的DELETE
语法不正确:
$sql = \"DELETE * FROM queries WHERE queryId= \'$del_id\'\";
您只想要14英镑。同样,如果queryId的值是数字,则不需要用引号引起来:
$sql = \"DELETE FROM `queries` WHERE `queryId` = $del_id\";
最后,您的MySQL错误调用没有做任何有用的事情:
mysql_error();
这是您应该执行的操作以及其余代码:
if($_POST[\'Delete\']) {
if(count($_POST[\'Query\']) > 0) {
foreach($_POST[\'Query\'] as $checkbox) {
$del_id= intval($checkbox);
$sql = \"DELETE FROM `queries` WHERE `queryId` = $del_id\";
$result = mysql_query($sql);
if(!$result) {
echo \"There was an error in the query: \" . mysql_error();
}
}
echo \"Selected Rows deleted\";
}
else {
$NEW=\"Nothing to Delete\";
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。