2009-07-18 11 views
0

Ich habe zwei Felder ... sind Kategorienamen und andere Dokumenttitel ... Wenn ich auf Senden klicken ... das Dokumenttitel in Dokument-Tabelle gespeichert werden soll, um die Kategorienamen verknüpfen ausgewählt ... welches in einer anderen Tabelle ist.Verknüpfung von zwei Tabellen in einer Abfrage

Eine Kategorie n Anzahl der Dokumenttitel haben können ...

$result = mysql_query("UPDATE stinky_menu SET description = '$docuTitle', url = '$linkTitle' WHERE title = '$catID'"); 

Wie kann ich eine andere Abfrage zu meinen anderen Tabelle durchführen, um in WHERE-Klausel.

+0

Ich hoffe, das ist Pseudocode. Ansonsten haben Sie einige ernsthafte Probleme mit SQL-Injektionen. Ich würde Ihnen empfehlen, vorbereitete Anweisungen in entweder PDO oder mysqli zu verwenden. –

Antwort

1

Im Allgemeinen behandel ich diese Art von Fall durch die Auswahlbox in dem HTML-Formular die Kategorie ID zurückkehren zu müssen, nicht der Titel. Das erlaubt mir, den Datensatz einzufügen oder zu aktualisieren, ohne eine zusätzliche Suche zu meinen Referenztabellen (in diesem Fall Ihre Kategorietabelle) zu benötigen.

1

Verwendung: benannte Form für die Parameter (? -Form funktioniert natürlich auch), einfachste Möglichkeit zu tun, was Sie wollen, ist eine FROM und JOIN in Ihrem UPDATE zu verwenden - so etwas (abhängig von einigen Details, die Sie haben) t zur Verfügung gestellt):

UPDATE stinkymenu 
SET description = :docuTitle, url = :linkTitle 
FROM stinkymenu 
JOIN categorytable 
ON stinkymenu.catId = categorytable.id 
WHERE categorytable.title = :catId 

PDO's docs für die Art und Weise finden Sie eine „vorbereitete Anweisung“ so zu verwenden, und seine Parameter an Ihre Variablen zu binden.

Verwandte Themen