안녕하세요!포럼 스레드/응답을 얻을 쿼리는 최신 하나만 표시합니다
나는 이것을 몇 시간 동안 알아 내려고 노력했지만 그저 작동시킬 수는 없다.
나는 모든 스레드를 표시하기로되어있는 포럼을 가지고 있으며 최신 답장순으로 정렬됩니다.
데이터베이스 :
테이블 스레드
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>';
}
나는 동안 ($의 R = mysqli_fetch_assoc ($ 쿼리))를 사용하고는, 내부의 루프는 얻을하는 것입니다 스레드에 대한 작성자. – user2311073