You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在展示tbl_food数据的表格中显示关联tbl_category表的分类标题

解决方案

核心修改点

你只需要把单表查询改为两表关联查询,直接在SQL层面拿到对应分类的标题即可,无需额外循环查库,具体修改如下:

  1. 替换原有SQL语句
    原SQL只查tbl_food表,改为关联查询,同时给同名字段加别名避免冲突:
// 原代码 $sql = "SELECT * FROM tbl_food";
// 替换为以下语句
$sql = "SELECT f.*, c.title AS category_title FROM tbl_food f LEFT JOIN tbl_category c ON f.category_id = c.id";

这里用LEFT JOIN是为了避免部分菜品没有绑定分类、或者对应分类被删除时,菜品数据也查不出来的问题。

  1. 修改表格输出部分的分类显示逻辑
    原代码输出$category_id的位置,替换为分类标题,同时兼容无分类的场景:
<!-- 原代码 <td><?php echo $category_id; ?></td> -->
<!-- 替换为 -->
<td><?php echo $category_title ?? '未分类'; ?></td>
  1. 可选修复错误提示的列数问题
    你原有空数据的<tr>上的colspan="4"不符合实际列数(现有6列),可以同步修改:
<tr>
    <td colspan="6" class="error">暂无菜品数据</td>
</tr>

修改后完整代码

<?php
    // 关联查询菜品及对应分类
    $sql = "SELECT f.*, c.title AS category_title FROM tbl_food f LEFT JOIN tbl_category c ON f.category_id = c.id";
    // 执行查询
    $res = mysqli_query($conn, $sql);
    // 检查是否执行成功
    if($res==TRUE)
    {
        // 统计行数判断是否有数据
        $count = mysqli_num_rows($res);
        $sn=1;
        if($count>0)
        {
            // 循环遍历数据
            while($rows=mysqli_fetch_assoc($res))
            {
                $id=$rows['id'];
                $title=$rows['title'];
                $description=$rows['description'];
                $price=$rows['price'];
                $active=$rows['active'];
                $category_title = $rows['category_title'];
                
                // 输出表格行
                ?>
                <tr>
                        <td><?php echo $sn++; ?></td>
                        <td><?php echo $title; ?></td>
                        <td><?php echo $description; ?></td>
                        <td><?php echo $price; ?> kn</td>
                        <td><?php echo $active; ?></td>
                        <td><?php echo $category_title ?? '未分类'; ?></td> 
                </tr>
                <?php
            }
        }
        else{
            ?>
            <tr>
                <td colspan="6" class="error">暂无菜品数据</td>
            </tr>
            <?php  
        }
    }
?>

内容的提问来源于stack exchange,提问作者user17524645

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:45:08