从数据库PHP SQL中删除项目


deleting items from database PHP SQL

我正试图从数据库中删除一个项目。删除成功,但有两个问题:

  1. 当我第一次运行此代码时显示此错误:

注意:未定义的索引:在第46行的C:''wamp''www''source''admin_delete_user.php中删除

第46行:if($_POST['delete'])

  1. 当我从数据库中删除一个项目时,一开始什么都不显示,我需要刷新以查看结果

代码:

<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']) . "')";
}
?> 

要解决第一个问题,您需要向if语句添加(使用&&)isset($_POST['delete'])。这将检查变量是否存在。

为了修复第二个。。。您很可能需要将整个删除部分移到数据解析之上。然后,它将首先被删除,然后才被解析,而不是相反。