显示 parent table 标题字段一次然后 child 组记录

Display parent table title field once then child records in groups

我想使用 2 个表显示常见问题解答列表:faqset 和 faqs

例如:

一般常见问题(常见问题集名称)

问题一 回答 1

问题2 答案 2

问题3 答案 3

PRE-SALE 常见问题(常见问题集名称)

问题四 回答 4

问题5 回答 5

问题6 回答 6

我相信我有查询,但我希望每个组的标题只显示一次,但它为每个 child 显示,如下所示:

一般常见问题解答

问题一 回答 1

一般常见问题解答

问题2 答案 2

faqset 字段是 qsid 和名称

faqs 字段是 fid、question、answer、qgroup(=来自 faqset 的 qsid)、status、rank

这是我的查询和代码:

<?
$query="SELECT faqset.*, faqs.* FROM faqset LEFT JOIN faqs ON faqset.qsid = faqs.qgroup WHERE faqs.status=1 ORDER BY faqset.name, faqs.rank, faqs.fid DESC";
$result=mysql_query($query);
$num=mysql_num_rows($result);
mysql_close();
?>

<?
$i=0;
while ($i < $num) {
$qsid=mysql_result($result,$i,"faqset.qsid");
$setname=mysql_result($result,$i,"faqset.name");
$fid=mysql_result($result,$i,"faqs.fid");
$question=mysql_result($result,$i,"faqs.question");
$answer=mysql_result($result,$i,"faqs.answer");
?>
<? echo "$setname"; ?>

<div id="faqcontainer">
<div id="faq_<? echo "$fid"; ?>">
<? if (!empty($question)) {?><div id="question"><? echo "$question"; ?></div><?php } ?>
<? if (!empty($answer)) {?><div><br/><? echo "$answer"; ?></div><?php } ?>
<div class="clear"></div>
</div>
</div>

<?
++$i;
} 


?>

关于如何实现这一点有什么建议吗?

将当前标题保存到一个var中,如果不相同则只打印它-

<?

$current_setname = "";

$i=0;
while ($i < $num) {
...[your code]...
?>

<? if($setname != $current_setname){
     echo $setname; 
     $current_setname = $setname;
   }

...[your code]...
?>