我试图从我的数据库中删除一个项目。删除成功但有两个问题:
注意:未定义的索引:在第46行的C:\ wamp \ www \ source \ admin_delete_user.php中删除
第46行:if($ _ POST [' delete'])
码
<form name="form2" method="post" action="" >
<?php
$db_host = 'localhost';
$db_name= 'site';
$db_table= 'tablesite';
$db_user = 'root';
$db_pass = '';
$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
mysql_query("SET NAMES 'utf8'", $con);
mysql_query("SET CHARACTER SET 'utf8'", $con);
mysql_query("SET character_set_connection = 'utf8'", $con);
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET utf8");
$dbresult=mysql_query("SELECT * FROM tablesite",$con);
echo "کاربری که قصد حذفش را دارید انتخاب نمایید: ";
echo '<br/>';
echo '<select name="delete">';
while($amch=mysql_fetch_assoc($dbresult))
{
echo '<option value="'.$amch['id_user'].'">'.$amch['username'].'</option>';
}
echo '</select>'; ?> <br/>
<input name="submit2" type="submit" value="حذف" />
</form>
<?php
if($_POST['delete'])
{
$db_host = 'localhost';
$db_name= 'site';
$db_table= 'tablesite';
$db_user = 'root';
$db_pass = '';
$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
mysql_query("SET NAMES 'utf8'", $con);
mysql_query("SET CHARACTER SET 'utf8'", $con);
mysql_query("SET character_set_connection = 'utf8'", $con);
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
$ins = "DELETE FROM tablesite
where id_user='" . mysql_escape_string($_POST['delete']) . "'";
$dbresult=mysql_query($ins,$con);
echo "('" . mysql_escape_string($_POST['delete']) . "')";
}
?>
答案 0 :(得分:5)
要解决第一个问题,您需要在if语句中添加(使用&amp;&amp;)isset($_POST['delete'])
。这将检查变量是否存在。
为了修复第二个...你很可能需要将整个删除部分移到数据解析之上。然后它将被删除,然后才被解析,而不是相反。