从数据库中删除项目PHP SQL

时间:2015-11-09 10:20:54

标签: php mysql

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

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

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

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

    1. 当我从数据库中删除某个项目时,一开始没有任何内容出现,我需要刷新才能看到结果。
    2. <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']) . "')";
      
      }
      ?> 
      

1 个答案:

答案 0 :(得分:5)

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

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