2014-10-13 4 views
1

을이되어 표시데이터는 내 SQL 쿼리를 여러 번

$sql = "SELECT comments.comment, users.userid, comments.bpid 
     FROM comments, users ,blogpages 
     WHERE comments.user_id = users.user and comments.bpid ='".$blogid."' 
     ORDER BY comments.cid;" 

$query = mysqli_query($con,$sql) or die (mysqli_error($con)); 

while($row = mysqli_fetch_array($query,MYSQLI_ASSOC)){ 
     $comm =$row["comment"]; 
     $commentsuser =$row["userid"]; 
     $commentbody .= "".$commentsuser."".$comm." ";  
} 

이 내 양식 및 디스플레이

<form action="" method="POST"> 
    <textarea name="commentarea"></textarea> 
    <input type="submit" value="COMMENT" > 
    <h2><?php echo $commentbody; ?></h2> 
</form> 

하지만 난 각각의 값을 여러 번 표시하고 의견을 입력 한 후입니까?

SELECT comments.comment, users.userid, comments.bpid 
FROM  comments, users ,blogpages 
WHERE comments.user_id = users.user AND 
     comments.bpid = blogpages.id AND -- Missing in the OP 
     comments.bpid ='".$blogid."' 
ORDER BY comments.cid; 

, 암시가되지 않습니다 조인했다 가졌를, 당신은 아마해야합니다 :

주석 내가 때까지 조인 조건을 누락

+1

생각? 문자열은 sql 명령이어야하며 어딘가에 표시 할 문자열이 아닙니다. – Alternatex

+0

당신은 3 개의 테이블을 가지며 3 개의 테이블 중 하나만 조인 조건을 갖습니다. 이는 다른 테이블이 교차 조인이 될 것임을 의미합니다. –

+0

phpMyAdmin에서 쿼리를 실행하거나 쿼리를 테스트 할 수있는 도구를 실행하십시오. 결과를 확인하십시오. – RiggsFolly

답변

0

페이지를 다시 입력 표시되지 않습니다 명시 적 조인을 사용 :

SELECT comments.comment, users.userid, comments.bpid 
FROM  comments 
JOIN  users ON comments.user_id = users.user 
JOIN  blogpages ON comments.bpid = blogpages.id 
WHERE comments.bpid ='".$blogid."' 
ORDER BY comments.cid; 

이이 형태의 구문의 실제 부분에 있기 때문에, 누락 된 조인 조건을 시각화하는 데 도움이됩니다. 당신은 SQL 문자열의 각 줄의 끝에 '\의 n`을 작성하는 이유는

+0

ok로 쿼리를 수정합니다 –

+0

세 테이블 모두에서 조인을 사용했습니다 –

0

나는 ... 당신이 찾고있는 SQL 뭔가처럼

SELECT 
    comments.comment, 
    users.userid, 
    comments.bpid 
FROM 
    comments, 
    INNER JOIN users ON comments.userId = users.userid, 
    INNER JOIN blogpages ON comments.bpid = blogpages.bpid 
WHERE 
    comments.bpid ='".$blogid."' 
ORDER BY 
    comments.cid; 
+0

blogpages.bpid 및 users.userid를 적절한 열 이름으로 대체하십시오. –

+0

ok는 내부 조인을 시도합니다. –

관련 문제