[英]While statement help (PHP)
我的數據庫包含問題和答案。 問題具有ID(intQAID),響應具有ID(intResponseID)。 intRespondID與其響應的intQAID ID相同。 數據庫中的每個條目都有其自己的ID,即intPostID。
我想做的是編寫一個查詢,它將獲取所有這些信息,並使用while語句將其發布到網站上。 但是,該結構需要為Question,並在其下為答案,直到while循環結束。
我可以將問題發布:
$question = mysql_query("SELECT *,
(SELECT cUsername FROM tblUsers tblU WHERE Q2.intPosterID = tblU.intUserID) AS username,
(SELECT DATE_FORMAT(dPostDateTime, '%b %e %Y %H:%i')) AS post_time
FROM tblQA Q2 WHERE intResponseID = 0
ORDER BY Q2.dSortDateTime DESC, Q2.intQAID DESC LIMIT 40");
while($row = mysql_fetch_array($question))
{
echo "<tr class='forum'>";
echo "<td class='forum'>" . substr($row['cBody'], 0, 150) . "</td>";
echo "<td class='forum'>" . $row['cCategory'] . "</td>";
echo "<td class='forum'>" . $row['username'] . "</td>";
echo "<td class='forum'>" . $row['post_time'] . "</td>";
echo "</tr>";
}
但是我怎樣才能在相同的while語句中發布答案呢?
應該這樣輸出:
Question 1:
Answer 1:
Question 2:
Answer 2:
Question 3:
Answer 3:
etc....
自己加入表格:
SELECT
*,
(SELECT cUsername FROM tblUsers tblU WHERE Q2.intPosterID = tblU.intUserID) AS username,
(SELECT DATE_FORMAT(dPostDateTime, '%b %e %Y %H:%i')) AS post_time
FROM tblQA Q2
JOIN tblQA AS tblQAjoin ON tblQAjoin.intRespondID = Q2.intPostID
WHERE Q2.intResponseID = 0
ORDER BY Q2.dSortDateTime DESC, Q2.intQAID DESC
LIMIT 40
不過,我不確定為什么要這樣設計表格。 如果每個問題只能有一個答案,為什么不簡單地連續兩列,一列包含問題,另一列包含答案?
嘗試使用JOIN語句。 只要您的問題和答案是一對一的,您就應該能夠一舉一動。
如果每個問題只有一個答案,則應該使用intRespondID和intQAI將問題表與答案表結合在一起,從而在一個查詢中獲得兩個數據。
然后,通過while循環的每次行程都有a,無論您在第一行上想要什么,a,a,在第二行上想要什么,最后是a。 因此,遍歷循環的過程不必只顯示一行輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.