使用 PHP 显示 SQL 数据时创建类别标题

Create Category Headings when displaying SQL data using PHP

我有一个网站菜单,我从 mySQL 数据库中提取所有信息。我正在尝试找到一种方法来将食物分类并带有标题。

它们的排序方式类似于

开胃菜:

沙拉:

等等几个不同的类别。 这是我的select声明

$sql = "SELECT item, price, description, category, picture, category_id FROM menu ORDER BY category ASC"; $new_result = mysql_query($sql);

这就是我使用 php

导入数据的方式
<?php while($new_row = mysql_fetch_array($new_result)) {
    if (isset($new_row["picture"])){
        echo "<div class='images'><img style='margin:15px;' src='".$new_row['picture']."' alt='".$new_row["item"]."' />
        <h2>". $new_row['item']."</h2>
          <h4>Price: ". $new_row['price']. " </h4>
          <p>Description: ". $new_row['description'] ."</p>
          <p>Category: ". $new_row['category'] ."</p></div>";}
 else {
    echo "<div class='images'><img style='margin:10px;' src='/archives/class11-lab/no.jpg' alt='Sorry, No Image Available' />
          <h2>". $new_row['item']."</h2><br>
           <h4>Price:". $new_row['price']. " </h4>            
        <p>Description: ". $new_row['description'] ."</h4>
         <p>Category: ". $new_row['category'] ."</p></div>";} } ?>

我这里的东西工作得很好,我只是不知道如何创建标题来对食物类型进行分类。

谢谢

在开始获取行之前初始化类别变量。

$category = null;

获取每一行后,将该行的类别与上一类别进行比较。如果不同,输出header。然后该类别成为新的上一个类别。

while ($new_row = mysql_fetch_array($new_result)) {
    if ($new_row['category'] != $category) {
        echo "<h1>$new_row[category]</h1>";
        $category = $new_row['category'];
    }
    // ... rest of your while loop contents ...

顺便说一下,mysql 扩展已经弃用了很长一段时间,并在 PHP 的当前版本中被删除。您应该考虑更新代码以改用 mysqli 或 PDO。