2016-04-06 18 views
0

Bitte verzeiht mir, wenn ich dumm aussieht, ich bin Neuling in PHP MySQLAuswahl aus mehreren Tabellen in derselben Abfrage mit PHP MySQL

Insgesamt gibt es drei Tabellen

Schüler, Klasse, Eltern

Ich arbeite jetzt an Elternbenutzer. Als Eltern möchte ich als einige Dinge sehen unter

  1. meine Studenten
  2. Ihre Klasse

Schülertisch studieren:

s_id s_name parent_id s_class_id 

1  name1  40   20 

Klasse Tabelle:

c_id c_name 

20  Ten 

Geordnete Tabelle:

p_id p_name 

40  Parent1 

Meine erste Aufgabe wie oben „1 erwähnt. Meine Studierende "i erfolgreich mit der folgenden Abfrage getan

"SELECT * FROM student where parent_id='$update_id' " 

dann durch

$row['s_name'] 

Für alle Anzeigen, die denkt, wo die $update id herkommt, ich habe es schon getan einige Codes oben wie folgt

$update_id = $login_type['p_id']; 

Wo $login_type i von Sitzung nehme

Jetzt möchte ich meine zweite Aufgabe machen, die "2. Ihre Klasse "

Ich möchte nicht, dass es als separate Select-Abfrage tun, die ich jetzt tun kann, ich will es in der gleichen Auswahl oben getan werden. Wie ich gerade von Grund auf neu lernen bin ich hier fest. bitte helfen Sie mir bitte paart.

ich versuchte, den max zu erklären, wie ich kann, wenn Sie noch irgendwelche Erklärungen haben, freundlich mich fragen.

+1

Verwenden Sie eine Join-Abfrage. –

+1

'SELECT s. *, C.c_name FROM Student s INNER JOIN Klasse c ON (s.class_id = c.cid) where s.parent_id = '$ update_id'' – sagi

Antwort

1

Sie join verwenden sollen Ergebnisse aus mehreren Tabellen zu erhalten. Ihre Anfrage sollte ähnlich aussehen:

SELECT * FROM student 
    JOIN class 
    ON class.c_id = student.s_class_id 
    WHERE parent_id='$update_id' 

Sie können join hier mehr über mysql lesen: http://dev.mysql.com/doc/refman/5.7/en/join.html

+0

Wirklich? ist diese gültige MySQL-Syntax? – sagi

+0

@DanielDudas Danke, das hat wie ein Charme Kumpel funktioniert. Übrigens gehe ich durch die "Join" -Dokumentation, auf die Sie sich beziehen, Mate. –

+0

@sagi Ist dies kein gültiger MySQL-Syntax-Partner? bitte hilf mir bitte. Ich frage, weil ich mit dieser Syntax perfekt ausgegeben werde. Aber irgendwie, wenn Sie das Gefühl haben, dass dies keine gültige Syntax ist, aktualisieren Sie mich bitte mit dem Fix in der Syntax, wie ich richtig lernen werde. Meine Absicht ist nicht die Ausgabe, sondern die richtige Syntax. –

1
SELECT * FROM student 
INNER JOIN class ON class.c_id = student.s_class_id 
WHERE parent_id = '$update_id' 

Sie mysqljoin Abfrage wie folgt verwendet werden kann und der Schüler Klassennamen in

bekommen
$row['c_name'] 
1

In diesem einzelnen SELECT können Sie alle Daten aus den Tabellen 'Student' und 'c Lass 'mit den Schülern mit parent_id =' $ update_id 'mit JOIN verwandt.

SELECT * FROM student 
LEFT JOIN class ON s_class_id=c_id 
WHERE parent_id='$update_id' 

Um die Daten aus, verwenden dieselbe Methode zugreifen Sie bereits verwenden:

echo $row['s_name']; 
echo $row['c_name']; 
// ..and so on for other fields. 

[Editiert: hinzugefügt LEFT, zu verbinden, so dass Sie Daten von allen Studenten bekommen, auch die nicht mit Klasse zugewiesen. Mit INNER JOIN (oder nur 'JOIN') vermissen Sie Zeilen von Schülern ohne Klasse.

Verwandte Themen