2011-01-01 3 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']; 
} 

* 편집 : * 제거 세미콜론.

+0

쿼리 내에 세미 콜론이 있습니다. 작동하지 않습니다 – tkt986

+0

Thx Tht 통지하지 못했습니다 ... – 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