[英]My Delete query isn't working properly
我在這里有點麻煩。 我的刪除查詢無法正常工作。 事情是我正在使用內部聯接從4個表中刪除。 該數據將在兩個表中刪除,但不會在其余兩個表中刪除。
事情是post表包含多個記錄,我必須刪除所有記錄,但是它只刪除第一個記錄。 並且fields_data表取決於posts表。 因此,如果我能夠從posts表中刪除所有記錄,那么在fields_data表中也將解決該問題。
總結一下,我想根據以下查詢從四個表(“ Workspace_name”,“ Posts”,“ Fields”,“ Fields_data”)中刪除所有數據。 我希望這對您有意義。 代碼如下。
謝謝你的時間。 更重要的是,它打印成功消息( Workspaces have been deleted
)的次數是posts表中記錄數的兩倍。但是顯然,除了第一個消息,它不會刪除。
<?php
include "connection.php";
$sel="SELECT * FROM `posts` WHERE `workspace_id`='$workspace_id'";
$qus=mysqli_query($con,$sel);
$counter=mysqli_num_rows($qus);
if($qus){
$pids=array();
while($res=mysqli_fetch_assoc($qus)){
$res['post_id'];
$pids[]=$res['post_id'];
}
}
else{
echo mysqli_error($con);
}
for($i=0;$i<$counter;$i++){
$dew="DELETE wn,f,p,fd
FROM `workspace_name` AS wn
INNER JOIN `fields` AS f
INNER JOIN `posts` AS p
INNER JOIN `fields_data` AS fd
ON wn.workspace_id=f.workspace_id AND p.post_id=fd.post_id
WHERE wn.workspace_id='$workspace_id' AND p.post_id='$pids[$i]'";
$quer=mysqli_query($con,$dew);
if($quer){
echo "Workspace and its corresponding fields have been deleted.. ";
}
else{
echo mysqli_error($con);
}
}
?>
您缺少2個表格field
和posts
ON
條件
$dew="DELETE wn,f,p,fd
FROM `workspace_name` AS wn
INNER JOIN `fields` AS f _ON(wn.some_id = f.some_id)_
INNER JOIN `posts` AS p _ON(wn.some_id = c.some_id)_
INNER JOIN `fields_data` AS fd
ON wn.workspace_id=f.workspace_id AND p.post_id=fd.post_id
WHERE wn.workspace_id='$workspace_id' AND p.post_id='$pids[$i]'";
您需要在刪除查詢中正確加入4個表,並且不要使用循環。 在第一個循環中,將使用帖子刪除工作空間,但是在第二次迭代中,將沒有工作空間,因此內部聯接也不會從posts表中產生任何記錄。
DELETE wn,f,p,fd FROM `workspace_name` AS wn INNER JOIN `fields` AS f
ON wn.workspace_id=f.workspace_id INNER JOIN `posts` AS p
ON wn.workspace_id=p.workspace_id INNER JOIN `fields_data` AS fd
ON p.post_id=fd.post_id
WHERE wn.workspace_id='$workspace_id'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.