我只是想知道你是否可以帮我组织多对多关系的查询结果,下面是其他细节。
SELECT rt.room_title as rm_name, amn.amnty_title
FROM amenities_tbl AS amn
LEFT JOIN room_am_link AS ral ON amn.amnty_id = ral.am_id
LEFT JOIN rooms_tbl AS rt ON ral.rm_id = rt.room_id;
这是我在查询结果(codeigniter)上的foreach循环:
<?php foreach($result as $row){?>
<tr>
<td><?php echo $row['rm_name']; ?></td>
<td><?php echo $row['am_title']; ?></td>
</tr>
<?php } ?>
如果我的问题很长,我很抱歉,我希望尽可能清楚 谢谢你,希望你能帮助我们。
答案 0 :(得分:1)
这样做的简单方法是有一个变量,它将保留第一列中的项的值,然后在循环中,只有在值发生变化时才显示它,例如:
<?php
$first_col = NULL;
foreach($result as $row){ ?>
<tr>
<td><?php
if ($first_col != $row['rm_name']) {
echo $row['rm_name'];
$first_col = $row['rm_name'];
} else {
echo " ";
}; ?>
</td>
<td><?php echo $row['am_title']; ?></td>
</tr>
<?php } ?>
当然,您的数据应按第一列排序 - 您需要将ORDER BY
添加到SQL中。
答案 1 :(得分:0)
Hi Can you please replace with below php code these will help you
<?php
$titleArray = array();
foreach($result as $row){
?>
<tr>
<td><?php
$searchVal = array_search($row['rm_name'], $titleArray);
if($searchVal !== false){
echo '';
} else {
$titleArray[] = $row['rm_name'];
echo $row['rm_name'];
}
?></td>
<td><?php echo $row['am_title']; ?></td>
</tr>
<?php } ?>