Php Mysql使用Id从2个表中删除

时间:2017-03-15 10:47:15

标签: php mysql

在我的管理仪表板中,我创建了一个页面,使用外键Id_clt显示来自2个表的信息,现在我创建了删除查询,但它没有工作 如果我做错了,请纠正我,谢谢。

 $conn = mysqli_connect("localhost", "root", "", "vm");
    // DELETE QUERY
    if(isset($_GET['id'])){

        $de=$_GET['id'];    
        $sql_de="DELETE FROM clt_t1,t2 INNER JOIN t2.Id_clt ON clt_t1.Id_clt=t2.Id_clt WHERE Id_clt=$de ";

        $rd=mysqli_query($conn,$sql_de);

        if($rd){
            header("refresh:1; url=welcomeadmin.php");
        }
        else{
            mysqli_error($conn);
            echo "error";
        }

    }

admin.php页面:

 <form method="GET" action="deletecomm.php">
    ..
    <td><a href="javascript:delete_data(<?php echo $data['Id_clt'];   ?>)">X</a></td>
    ..
    </form>

2 个答案:

答案 0 :(得分:0)

MySQL中DELETE ... FROM ... JOIN的语法不是那么。

而不是

DELETE FROM clt_t1,t2  
INNER JOIN t2.Id_clt ON clt_t1.Id_clt=t2.Id_clt 
WHERE Id_clt=:de 

你应该使用

DELETE clt_t1
FROM clt_t1
INNER JOIN t2 ON clt_t1.Id_clt=t2.Id_clt 
WHERE clt_t1.Id_clt=:de

顺便避免直接变量插值。

答案 1 :(得分:0)

感谢所有试图帮助我的人。给了我建议我找到了正确的解决方案:

$sql_de="
DELETE t2 
FROM t2
LEFT JOIN clt_t1 ON clt_t1.Id_clt=t2.Id_clt 
WHERE clt_t1.Id_clt='".$de."'
";