php - 显示一次父表标题字段,然后显示组中的子记录

标签 php mysql recordset

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

例如:

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

问题1 答案1

问题2 答案2

问题3 答案3

售前常见问题解答(常见问题集名称)

问题4 答案4

问题5 答案5

问题6 答案6

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

一般常见问题解答

问题1 答案1

一般常见问题解答

问题2 答案2

faqset 字段是 qsid 和名称

常见问题字段包括 fid、问题、答案、qgroup(=来自 faqset 的 qsid)、状态、排名

这是我的查询和代码:

<?
$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;
} 


?>

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

最佳答案

将当前标题保存到变量中,并且仅在不相同时才打印它 -

<?

$current_setname = "";

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

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

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

关于php - 显示一次父表标题字段,然后显示组中的子记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979806/

相关文章:

mysql - 如何在 R 的 sqlQuery 函数中使用 REGEXP

vba - 如何在VBA中以字符串形式读取记录集

sql-server - 日期的 ADO 记录集类型

php - Mongodb在PHP中每天获取一段时间内的平均值

php - 在 IIS 上将表单发布到 PHP 时,导致 HTTP 405 "invalid method (HTTP verb)"错误的原因是什么?

php - Laravel 关系无法访问

javascript - Ajax 调用无法与 onclick 一起使用

php - 我在 javascript 中遇到验证问题

mysql - 如何加快 MYSQL FullText 的搜索或更改查询

MySQL 选择记录集中的 WHERE