2015-11-09 43 views
3

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

  1. 显示当我运行首次验证码这个错误:

注意:未定义指数:删除C:\ WAMP \ WWW \上线源\ admin_delete_user.php 46

线46:如果($ _ POST [ '删除'])

  • 当我从数据库中删除一个项目时,首先没有任何东西出现,我需要刷新以查看结果。
  • 代码:

    <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

    “通知”不属于“错误”。 – arkascha

    +0

    @arkascha:当用户在网站上工作时,通知没有良好的视图 – sammy

    +0

    你的意思是你在Web视图中看到这样的东西?在你的php设置中关闭它!如果有的话,那只应该配置为调试和开发,但_never_用于生产使用!看一看'php.ini'配置文件中的'display_errors'设置。 – arkascha

    回答

    5

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

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

    +0

    1.什么是使用2.你确定没有任何方法可以先删除吗? – sammy

    +0

    只需将'isset()'部分添加到'if'语句并使用AND运算符(在执行'!empty()')之前添加'isset()'。那么,如果删除代码高于解析代码,则只能先删除它,对吗?这确实有道理。 – Andrius