DELETE aus zwei Tabellen gleichzeitig

loddarmattheus

Erfahrenes Mitglied
Hallo Leutz,

bin noch ein ziemlicher Anfänger in Sachen PHP und hab ein Prob, dass ich auch mit der Suchenfunktion nicht lösen konnte.

Also:

Ich habe eine DB mit zwei Tabellen (projekte und pot_kunden). Dazu ein Script, mit dem ich mit einem Löschen Datensätze aus der einen und der anderen Tabelle löschen möchte. Klappt aber nicht, er löscht nur die Zeilen aus der einen Tabelle.

Woran könnte das liegen, da Insert ohne Probleme mit beiden Tabellen funzt.

PHP:

//Daten löschen
if($clear)
{
$loeschen = "DELETE FROM pot_kunden WHERE id=$clear";
$result = mysql_query($loeschen,$db);
$loeschen = "DELETE FROM projekte WHERE id = kunden_id";
$result = mysql_query($loeschen,$db);
}

PHP

Kann mir einer helfen?

//loddar

[Man kann nicht alles wissen, aber alles erfragen]
 
-

PHP:
if($clear) 
{ 
$loeschen = "DELETE FROM pot_kunden WHERE id='$clear'"; 
$result = mysql_query($loeschen,$db); 
$loeschen1 = "DELETE FROM projekte WHERE id='$kunden_id'"; 
$result = mysql_query($loeschen1,$db);
}
 
Danke, aber...

funktioniert leider nicht, da ich kunden_id in dem Script nirgends als Variable gespeichert habe.

Die kunden_id ist nur der "Fremdschlüssel" in der einen Tabelle, deren identische Werte als "Primärschlüssel" in der anderen Tabelle (id) definiert sind.

Das witzige ist dich, dass INSERT funktioniert!

Hat vielleicht noch jemand ne Idee?

//loddar
 
ich schätze mal dein dbms ist MySQL, und dort gibt es keine Fremdschlüssel/Referenzielle Intergitäten , von daher musst du schaun ob du die kunden_id irgendwie an das script übergeben kannst.
 
Ich hab es schon immer gebraucht und jetzt ist es da. *freu*

Multi-Table-Delete wird ab MySQL v4.0.0 unterstuetzt.

Syntax 1 (unterstuetzung ab v4.0.0):
DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id

Syntax 2 (unterstuetzung ab v4.0.2):
DELETE FROM t1,t2 USING t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id

Noch mal zum nachlesen MySQL-Referenz.

@loddarmattheus:
ich benutze fuer das Beispiel die Syntax 1, weil aelter
PHP:
//Daten löschen
if($clear)
{
  $loeschen = "DELETE pot_kunden,projekte FROM pot_kunden,projekte WHERE pot_kunden.id=$clear AND pot_kunden.kunden_id=projekte.id";
  $result = mysql_query($loeschen,$db);
}

muesste so klappen, wenn ich deine DB-Struktur richtig verstanden habe. ;)
 

Neue Beiträge

Zurück