チェックボックスがオンになっているときに、異なるテーブルの行を削除する必要がある 2 つのクエリがあります。問題は、クエリの 1 つだけを実行し、他のクエリを無視することです。
コードは次のとおりです。
if(isset($_POST["che".$i.""])){
$query4 = "DELETE FROM gastos WHERE id_dedicaciondos = $idded AND id_usuario=$idu;";
$query4 .= "DELETE FROM dedicacio WHERE id_dedicacion = $idded AND id_usuario=$idu;" ;
if(mysqli_multi_query($connexio,$query4)){
do{
if ($result = mysqli_store_result($connexio)) {
mysqli_free_result($result);
}
}while(mysqli_next_result($connexio) && mysqli_more_results($connexio));
}
}
2番目のクエリからのみ行を削除します...クエリの順序を変更すると、結果はまったく同じになり、「delete from dedicacio」クエリからのみ削除されます。
私に何ができる?
前もって感謝します
アップデート
私は次を試しました:
if(isset($_POST["che".$i.""])){
$query4 = "DELETE FROM gastos WHERE id_dedicaciondos = ".$idded.";";
$query5 = "DELETE FROM dedicacio WHERE id_dedicacion = ".$idded.";";
if(mysqli_query($connexio,$query4)){
echo "YES!";
}
if(mysqli_query($connexio,$query5)){
echo "YES2!";
}
}
「YES!」と表示されます。そして「YES2!」しかし、クエリは「gastos」テーブルの何も削除しません:(
アップデート
id_dedicacions を参照する id_dedicaciondos に「ON DELETE CASCADE」を追加して、自分で解決しました。