如何使用php在while循环中获取一次category值

如何使用php在while循环中获取一次category值,php,sql,Php,Sql,这是我的代码,我使用while循环从数据库中获取行值 <?php $query = "SELECT I.itemid AS itemid, C.catid AS catid, C.name AS cname, I.name AS iname, I.price As price FROM tbl_item I INNER JOIN tbl_menu_category C ON I.catid=C.catid;" $sql = mysqli_query($con, $query);

这是我的代码,我使用while循环从数据库中获取行值

    <?php
$query = "SELECT I.itemid AS itemid, C.catid AS catid, C.name AS cname, I.name AS iname, I.price As price FROM tbl_item I INNER JOIN tbl_menu_category C ON I.catid=C.catid;"
$sql = mysqli_query($con, $query);

while($row=mysqli_fetch_array($sql)) { ?>

<ul class="menu-cat" id="menu<?php echo $row['catid'];?>">
<li>
<h5><?php echo $row['cname'];?></h5>
<span><?php echo $row['iname'];?></span>
    <span style="float:right"><?php echo $row['iprice'];?></span>
<span><i class="fa fa-plus-circle" aria-hidden="true"></i></span>

</li>
  </ul>

   <?php } ?>



一切正常,但我想类别出现一次,因为它是显示多次

范例

类别1 洋娃娃25

类别1 汽车50

类别2 礼服400

类别2 礼物100

我想展示如下

第1类

洋娃娃25 汽车50

第2类

礼服400 礼物100


我将如何实现相同的功能???

存储迭代的最后一个类别的名称,并将其与当前类别进行比较。如果不同,请打印;如果不同,请不要:

<?php
$query = "SELECT I.itemid AS itemid, C.catid AS catid, C.name AS cname, I.name AS iname, I.price As price FROM tbl_item I INNER JOIN tbl_menu_category C ON I.catid=C.catid;"
$sql = mysqli_query($con, $query);
$lastCategory = null;
while($row=mysqli_fetch_array($sql)) { 
    ?>
    <ul class="menu-cat" id="menu<?php echo $row['catid'];?>">
        <li>
            <?php if ($lastCategory === null || $lastCategory !== $row["cname"]):?> <h5><?php echo $row['cname'];?></h5><?php endif;?>
            <span><?php echo $row['iname'];?></span>
            <span style="float:right"><?php echo $row['iprice'];?></span>
            <span><i class="fa fa-plus-circle" aria-hidden="true"></i></span>
        </li>
        </ul>
    <?php 
    $lastCategory = $row["cname"];
} 
?>