我正尝试在image_1下方显示cat_1,并在其下方列出我的cat_1产品。下一行应为image_2,在其下方为cat_2的标题和cat_2的产品列表。 ETC。
我现在遇到的问题是echo $ output显示image_1,它下面是cat_1,只有cat_1的一种产品。下一行还是image_1,位于cat_1和cat_1的第二个产品下方。下一行是相同的,显示cat_1的第三个乘积,直到cat_1的所有乘积都经过循环,然后对cat_2开始相同。
所以我想要的是该类别的所有产品中首先显示1个类别。然后循环可以继续显示cat_2及其产品的标题。我通过创建一个功能Lunchmenu($ cat)解决了它,并从我的sql中选择* from Lunchmenu,其中category ='$ cat'并手动对类别进行硬编码。但是我想知道是否可以使用更少的代码行。有人建议使用DISTINCT,我尝试了$sql = "SELECT DISTINCT * FROM lunchmenu";
,但这并没有太大改变!
这是我的show_menu.php
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$conn = mysqli_connect('***', '***', '***', '***');
$sql = "SELECT * FROM lunchmenu";
$result = $conn->query($sql) or die($conn->error);
$output = '';
while($row = $result->fetch_assoc()) {
{
$output .= '
<div id="'.$row["category"].'" class="menu-category">
<div class="menu-category-title">
<div class="bg-image"><img src="assets/img/photos/'.$row["image"].'" alt=""></div>
<h2 class="title">'.$row["category"].'</h2>
</div>
<div class="menu-category-content">
<div class="menu-item menu-list-item">
<div class="row align-items-center">
<div class="col-sm-6 mb-2 mb-sm-0">
<h6 class="mb-0">'.$row["name"].'</h6>
<span class="text-muted text-sm">'.$row["desc"].'</span></div>
<div class="col-sm-6 text-sm-right">
<input type="text" name="quantity" style="width: 50px; height: 25px;" id="quantity' . $row["id"] .'" class="form-control" value="1" />
<span class="text-md mr-4"><span class="text-muted"></span> €'.$row["price"]. '</span>
<button class="btn btn-outline-secondary btn-sm add_to_cart" name="add_to_cart" id="'.$row["id"].' style="margin-top:5px;"><span>Add to Cart</span></button>
</div>
</div>
</div>
</div>
</div>
';
}
echo $output;
}
?>