在我的管理仪表板中,我创建了一个页面,使用外键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>
答案 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."'
";