我从我正在返回的数据库中获取了一些数据,但目前它将所有内容都返回到一个大列表中。
数据的每个情侣项目都有一个类别名称。我想将每组分配了类别的项目分开。
Example:
test1 (has category testing)
test2 (has category testing)
test3 (has category testing123)
这些结果只显示在一个大清单中,我希望结果如下:
testing:
test1
test2
testing123:
test3
我该怎么做?
我现在的代码(仅限相关部分):
while ($row_items = mysqli_fetch_assoc($res_items)) {
$checklist = '';
if ($row_items['checkpoints'] != '') {
$check = explode(',', $row_items['checkpoints']);
foreach($check as $list) {
$checklist .= '
<li class="cataloguslist">
<i style="color:#e88f41;" class="fa fa-check-square" aria-hidden="true">
</i> '.$list.'</li>';
}
}
echo '
<div class="col-lg-2 col-md-3 col-sm-6 col-xs-6 portf">
<a class="fancybox" href="../../catalogus/'.$row_items['afbeelding'].'">
<div class="gallery-item">
<div class="image">
<img src="../../catalogus_icons/'.$row_items['afbeelding'].'.jpg" alt="" style="border:1px solid #ccc;" class="img-responsive" />
</div>
<div class="bottom-info" style="min-height:200px;">
<div class="name">'.$row_items['naam'].'</div>
<ul style="margin-left:35px;margin-top:10px;">'.$checklist.'</ul>
<a href="contact.php">
<button class="contact_button buttoncontact btn-primary" style="border-radius:2px;">
Vraag offerte aan
<span class="icon-mail-alt"></span>
</button>
</a>
<div class="contactlink">
<a href="contact.php">Neem contact op</a>
</div>
</div>
</div>
</a>
</div>';
}
每个结果在数据库中都有一个cat
行,它连接到producten_cats(id
与cat
相同的表格及其中的类别名称以及表格名称:{ {1}};
答案 0 :(得分:0)
很难说出您的类别名称在您的代码中的位置,因此我无法给您准确的答案。
要按照显示的方式拆分数据库结果集,请执行以下操作,以检测何时在数据库结果集中获得具有新category
值的第一行。
$previous_category = "---nothing---";
while ($row_items = mysqli_fetch_assoc($res_items)) {
$category = $row_items['category'];
if ( $category != $previous_category ) {
$previous_category = $category;
/* show category header, for example */
echo '<h2>$category:</h2>';
}
$checkpoints = $row_items['checkpoints'];
/* show details, for example */
echo '<p>$checkpoints</p>';
}
要使这种事情正常工作,您需要在查询中使用ORDER BY category
。
这种技术通常称为表示层格式化。它将MySQL提供的数据表转换为用户友好的布局。