2016-06-03 7 views
0

tabelle1: id (Autoincrement) Benutzername KategorieAbfrage Datensätze aus der Tabelle, wo attribute = Elemente aus Array aus vorheriger Abfrage

table2: id (Autoincrement) itemname Kategorie

Ich habe 2 Abfragen .

1 Abfrage zeigt man Kategorien, die ein Benutzer (angemeldet) gehört zu:

$sql = "SELECT * FROM table1 WHERE '$login_session' = username"; 

ich jeden Datensatz auflisten:

if ($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
     echo "category: " . $row["category"]. "<br>"; 
} 

Das funktioniert gut.

Meine zweite Abfrage ist abhängig von der ersten Abfrage. Ich muss alle Datensätze aus Tabelle2 auflisten, in denen die Kategorie zu der Array-Kategorie in der vorherigen Abfrage gehört.

$sql2 = "SELECT * FROM table2 WHERE category = I DO NOT KNOW WHAT TO PUT HERE"; 

Wie schreibe ich $ sql2?

+0

vergessen haben, während der schließenden Klammer 'while ($ row = $ result-> fetch_assoc()) {' – C2486

Antwort

4

Eine Methode verwendet in verwenden:

SELECT * 
FROM table2 
WHERE category IN (SELECT category FROM table1 WHERE '$login_session' = username"); 
1

Sie können IN()

$sql = 'SELECT * FROM table2 WHERE category IN ('"' . implode('","', $arrayOfCategories).'"')' 
Verwandte Themen