2013-04-23 1 views
0

안녕하세요!포럼 스레드/응답을 얻을 쿼리는 최신 하나만 표시합니다

나는 이것을 몇 시간 동안 알아 내려고 노력했지만 그저 작동시킬 수는 없다.
나는 모든 스레드를 표시하기로되어있는 포럼을 가지고 있으며 최신 답장순으로 정렬됩니다.
데이터베이스 :
테이블 스레드
thread_id, CATEGORY_ID, 제목, 생성, 저자, 상태


reply_id, thread_id, 생성, 텍스트를 응답

쿼리 :

$query = mysqli_query($link, "SELECT * FROM threads, replies 
WHERE threads.thread_id=replies.thread_id AND threads.category_id=$cat 
AND threads.status=1 ORDER BY replies.reply_id DESC"); 

문제 : 그것은 최신 응답에 스레드를 표시 . while 루프를 사용하여 모든 행을 에코합니다. mysqli_num_rows ($ query)는 3을 나타내지 만 단 하나의 쓰레드 만 출력된다. 당신은 한 번 각 행에 대해 반복 mysqli_fetch_assoc()를 호출 할 필요가

while($r = mysqli_fetch_assoc($query)) 
{ 
    $thread_id = $r['thread_id']; 
        $total_comments = mysqli_num_rows(mysqli_query($link, "SELECT thread_id FROM replies WHERE thread_id=$thread_id")); 
        $last_comment = mysqli_query($link, "SELECT * FROM replies WHERE thread_id=$thread_id ORDER BY reply_id DESC LIMIT 0,1"); 
        $rLastComment = mysqli_fetch_assoc($last_comment); 
    $query = mysqli_query($link, "SELECT author FROM threads WHERE thread_id=$thread_id"); 
    $a = mysqli_fetch_assoc($query); 
    echo '<tr> 
    <td><img src="" alt=""></td> 
    <td><a href="/forum/thread/'.$thread_id.'">'.$status.''.(substr($r['title'], 0, 15)).'</a> </td> 
    <td>'.$a['author'].'</td> 
    <td>'.($total_comments).'</td> 
    <td>'.$lastComment.'</td> 
    </tr>'; 
} 

답변

0

:의 while 루프는 간단하게 구성되어 있습니다.

확인 결과 출력 while 루프를 사용하는 방법에 대한 예는 PHP 워드 프로세서 : http://php.net/manual/en/mysqli-result.fetch-assoc.php

+0

나는 동안 ($의 R = mysqli_fetch_assoc ($ 쿼리))를 사용하고는, 내부의 루프는 얻을하는 것입니다 스레드에 대한 작성자. – user2311073