2016-04-08 9 views
-4

Was ich tun möchte, ist die routineName und Beschreibung anzuzeigen, wenn der Benutzer an meinem System angemeldet, basierend auf was sie userID oder Benutzername ist.Mysql Datenbank Join Probleme

Ich habe 3 Tabellen in mySQL Datenbank Benutzer userid Name Benutzername Passwort

Routine RoutineID RoutineName Beschreibung

UserRoutines UserRoutinesID userid RoutineID

Diese ist meine Anfrage Bisher SELECT routine. RoutineName, routine. Description VON user_routines, routine, userdetails Wo user_routine ' 'Benutzer-ID'= 'user' 'userid' AND ‚user'.username = username =..?; (? Ist die Variable aus der Anwendung übergeben)

+0

versuchen Probleme Join ... Ok, so, wo Ihr Code? –

+0

Veröffentlichen Sie den Code, den Sie versucht haben, der nicht wie erwartet für Sie funktioniert hat. –

+0

@ robbiem610 irgendwelche Nachrichten? – xNeyte

Antwort

0
SELECT RoutineName, Description 
FROM Routine r , UserRoutines ur 
WHERE r.RoutineID = ur.RoutineID 
AND userid = ? 

Bind diese Anfrage mit Ihrer Benutzer-ID, die Sie auf Lager, wenn in $_SESSION variable Anschluss:

session_start(); 
$_SESSION['userid'] = the user id 

Hinweis: Sie Benutzernamen anstelle von Benutzer-ID speichern, Sie müssen lediglich eine weitere Tabelle zu Ihrer Anweisung hinzufügen.

0

Sie sollten genauer mit Ihren Fragen sein, dies ist keine "tue dies für mich" -Seite.

Grundsätzlich sollten Sie so etwas wie SELECT maintable.field1, table1.field1, table2.field1 FROM MainTable INNER JOIN table1 ON table1.id = Maintable.id_table1 INNER JOIN table2 INNER JOIN table2.id = Maintable.id_table2 WHERE Maintable.field1 = ?

+0

Wo kommt also das "wo der Benutzer gleich ist" ins Spiel? –

+0

@ Fred-ii- Ich vermutete, dass er eine Liste aller Benutzerroutinen überprüfen möchte. Wenn er einen bestimmten Benutzer will, muss er nach der Abfrage eine where-Klausel hinzufügen, wie zum Beispiel 'WHERE userid =?' – Golinmarq

+0

OP gibt an: * "basierend auf der Benutzer-ID oder dem Benutzernamen" * –