[英]Php Mysql DELETE From 2 Tables Using Id
In my admin dashboard I created a page that show information from 2 tables using a foreign key Id_clt, now I created the delete query but it didn't work Please correct me if I did something wrong, Thanks. 在我的管理仪表板中,我创建了一个页面,使用外键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 page: admin.php页面:
<form method="GET" action="deletecomm.php">
..
<td><a href="javascript:delete_data(<?php echo $data['Id_clt']; ?>)">X</a></td>
..
</form>
The syntax of DELETE ... FROM ... JOIN
in MySQL is not quite that. MySQL中的DELETE ... FROM ... JOIN
的语法并不是那么简单。
Instead of 代替
DELETE FROM clt_t1,t2
INNER JOIN t2.Id_clt ON clt_t1.Id_clt=t2.Id_clt
WHERE Id_clt=:de
You should use 你应该用
DELETE clt_t1
FROM clt_t1
INNER JOIN t2 ON clt_t1.Id_clt=t2.Id_clt
WHERE clt_t1.Id_clt=:de
And avoid direct variable interpolation by the way. 并且顺便避免直接变量插值。
Thanks to everyone who tried to help me & gave me advice I FOUND THE RIGHT SOLUTION: 感谢所有试图帮助我并给我建议的人,我找到了正确的解决方案:
$sql_de="
DELETE t2
FROM t2
LEFT JOIN clt_t1 ON clt_t1.Id_clt=t2.Id_clt
WHERE clt_t1.Id_clt='".$de."'
";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.