2011-01-01 18 views
0

Ich versuche diese Abfrage zu verwenden, um jede Instanz zurückzugeben, wo die Variable $ d ['userID'] gleich der Benutzer-ID in einer separaten Tabelle ist, und echo dann den Benutzernamen dieser Benutzer-ID.PHP MySQL Query help

Hier ist, was ich bisher:

$uid = $d['userID']; 

$result = mysql_query("SELECT u.username 
FROM users u 
LEFT JOIN comments c 
ON c.userID = u.id 
WHERE u.id = $uid;")$row = mysql_fetch_assoc($result); 
echo $row['username']; 
+0

Wird hier etwas echo gedruckt? –

+0

Sie verpassen einen Semikolon am Ende von $ result = ... – tkt986

Antwort

2

Diese

$uid = mysql_real_escape_string($d['userID']); 

$result = mysql_query("SELECT u.username 
FROM users u 
LEFT JOIN 
comments c 
ON c.userID = u.id 
WHERE u.id = '$uid'"); 


    while($row = mysql_fetch_assoc($result)) 
{ 
    //PRINTS ALL INSTANCES OF THE ROW 
    echo $row['username']; 
} 

was aus dem Echo oben gedruckt wird funktionieren sollte.

+0

keine Notwendigkeit der While-Schleife, da es nur 1 Zeile zurückgeben wird –

+0

Wenn das der Fall ist, können Sie die While-Schleife ignorieren. – tkt986

+0

behobenes SQL-Injektionsloch (http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain) – Johan

0

Try this:

$uid = $d['userID']; 

$result = mysql_query("SELECT u.username 
FROM users u 
LEFT JOIN comments c 
ON c.userID = u.id 
WHERE u.id = $uid"); 
while($row = mysql_fetch_assoc($result)) 
{ 
    echo $row['username']; 
} 

* EDIT: * Entfernt Semikolon.

+0

Sie haben den Semikolon innerhalb der Abfrage erhalten. wird nicht funktionieren – tkt986

+0

Thx bemerkte nicht tht ... – Chandu

+0

Sie brauchen immer noch das Semikolon am Ende. – tkt986

0

wenn Sie alle Ergebnisse suchen. wickeln Sie Ihre mysql_fetch_assoc in einer while Schleife:

$result = mysql_query("SELECT u.username 
FROM users u 
LEFT JOIN comments c 
ON c.userID = u.id 
WHERE u.id = $uid;"); 
while($row = mysql_fetch_assoc($result)){ 
    echo $row['username']; 

} 
+0

Entschuldigung für den Betrogenen. andere Antworten sind vor der Seitenaktualisierung aufgetreten. – seanh