在我的数据库中,我有问题和答案。每个帖子都有一个'postID',只有答案有一个'responseID',它引用了问题的'postID'。
我可以确定自responseID = postID
以来哪些答案归结为哪个问题我想编写一些PHP代码,以下列格式显示数据:
问题:
- 回答
- 回答
- 回答
问题:
- 回答
- 回答
- 回答
......等等
附加信息:
问题和答案在同一个tblQA表中。列是QAID,PosterID,ResponseID,TimeStamp,Category,Body。
所以,每个帖子都有QAID。一个问题将有一个类别,答案将有一个等于QAID问题的responseID。
这会抓住所有问题:
SELECT * FROM tblQA WHERE category IS NOT NULL
这会抓住所有答案:
SELECT * FROM tblQA WHERE ResponseID IS NOT NULL
答案 0 :(得分:3)
不需要循环。您可以执行使用JOIN
。
如果您的表格如下:
QuestionID Question
123 "What do you think about..."
124 "Who is your favorite..."
AnswerID Answer
123 "I think that..."
123 "I tend to think..."
124 "My favorite..."
您可以制作类似
的JOIN
查询
SELECT * FROM Questions LEFT JOIN Answers ON QuestionID = AnswerID
这未经过测试,但这就是理论。这会给你带来什么样的结果就像是
QuestionID Question Answer
123 "What do you think about..." "I think that..."
123 "What do you think about..." "I tend to think..."
根据您的RDBMS,您可以执行许多JOIN
个操作。当冲突或null
值出现冲突时,大多数情况都与联接的“侧面”有关。
在此处详细了解MySQL
:http://www.tizag.com/mysqlTutorial/mysqljoins.php
答案 1 :(得分:0)
试试这个:
$sql="SELECT * FROM tblQA WHERE category IS NOT NULL";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
echo $row[Body];
$sql1="SELECT * FROM tblQA WHERE ResponseID IS NOT NULL and qaid = $row[responseid]";
$result = mysql_query($sql1);
while($row = mysql_fetch_assoc($result))
{
echo $row[Body];
}
}