2011-01-01 20 views
0

私はこのクエリを使用して、変数$ d ['userID']が別のテーブルのユーザIDと等しいすべてのインスタンスを返し、そのユーザIDに関連付けられたユーザ名をエコーし​​ます。PHP MySQLクエリヘルプ

は、ここで私がこれまで持っているものです。

$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

ここにエコープリントがありますか? –

+0

$ result = ...の最後にセミコロンがありません。 – tkt986

答えて

2

これは、上記のエコーから印刷されたもの

$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']; 
} 

動作するはずです:あなたはwhileループでmysql_fetch_assoc包みます。

+0

whileループは必要ありません。1行だけを返します。 –

+0

その場合、whileループは無視できます。 – tkt986

+0

固定SQL注入穴(http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain) – Johan

0

はこれを試してみてください:

$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: *削除セミコロン。

+0

クエリ内にセミコロンがあります。 – tkt986

+0

Thx通知されませんでした... – Chandu

+0

最後にセミコロンが必要です。 – tkt986

0

すべての結果を得るには、

$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

詐欺にごめんね。ページの更新前に他の応答が発生しました。 – seanh