JOIN Abfrage funktioniert nicht

qsrs

Erfahrenes Mitglied
Hallo,

ich habe ein Problem mit einer JOIN-Abfrage. Ich möchte mit einem PHP-Skript Dateien anzeigen, die ein User gekauft hat. Dazu verwende ich zwei Tabellen:

$dbtable5 = Dateien (Informationen zu den Dateien)
$dbtable19 = Wer hat was gekauft - Aufbau wie folgt:

id | user_id | file_id | payment_status

Ich versuche das Anzeigen aller Dateien eines User mit folgender Afrage, es funktioniert aber noch nicht:
PHP:
 $sql = "SELECT $dbtable5.* FROM $dbtable5, $dbtable19 WHERE $dbtable19.user_id = '".$array7[id]."' AND $dbtable19.payment_status = 'verified' ORDER BY $dbtable5.file_subject ASC";
In ".$array7[id]." steht die User-ID des aktuellen Users. Nun werden mir alle Dateien angezeigt, und zwar jeweils immer 4 Mal (das entspricht der Menge an Einträgen in $dbtable19 des aktuellen Users). Was mache ich falsch? Vielen Dank für evtl. Hilfe.
 
Hi,

in Deinem Query ist ja auch nicht zu erkennen, wie die Tabellen denn verknüpft sind.

versuch' mal so (in der Annahme, file_id entspricht id in $dbtable5):

PHP:
$sql = "SELECT * FROM $dbtable19 inner join $dbtable5 
   ON $dbtable19.file_id = $dbtable5.id 
   WHERE $dbtable19.user_id = '".$array7[id]."' 
   AND $dbtable19.payment_status = 'verified' 
   ORDER BY $dbtable5.file_subject ASC";

LG
 
Sorry, hab es nochmals überdacht, jetzt funtkoniert es, hier die Lösung:

PHP:
 $sql = "SELECT $dbtable5.* FROM $dbtable5, $dbtable19 WHERE $dbtable5.id = $dbtable19.file_id AND  $dbtable19.user_id = '".$array7[id]."' AND $dbtable19.payment_status = 'verified' ORDER BY $dbtable5.file_subject ASC";
 
Na ja, qsrs,
wenn Du -wie in der Überschrift geplant- diese beiden Tabellen joinen willst, dann musst Du das an irgendeiner Stelle auch kundtun. Vorzugsweise im Statement.

Ergänze in der Where-Bedingung:
... AND $dbtable19.file_id = $dbtable5.?_id...

Grüße
Biber
 
Zurück