为了账号安全,请及时绑定邮箱和手机立即绑定

将产品精确地显示在其所属类别的下方

将产品精确地显示在其所属类别的下方

PHP
Helenr 2022-09-12 13:03:20
我想创建一个“php-mysql”系统,管理员可以在其中创建类别和产品。产品将动态存储在它们所属的类别中,并且在用户界面上,这些产品将显示在它们所属的类别的正下方。例如:现在我的产品显示如下图所示:我希望它们显示如下图所示:我的我的我的表是:到目前为止,我的代码(sql)是:<?php    function getCategory() {        $db_conn = getConnection();        if (!$db_conn) return false;        $sql = "SELECT category from products";        $result = $db_conn->query($sql);        $db_conn->close();        return $result;    }    function getProduct() {        $db_conn = getConnection();        if (!$db_conn) return false;        $sql = "SELECT * from products";        $result = $db_conn->query($sql);        $db_conn->close();        return $result;    }?>断续器代码:<div class="category">    <?php $categories = getCategory(); ?>    <?php while ($category = $categories->fetch_assoc()) : ?>    <h2><?php echo $category['name']; ?></h2>    <div class="products">        <?php $products = getProduct(); ?>        <?php while ($product = $products->fetch_assoc()): ?>        <table>            <tr>                <td><?php echo $category['name']; ?></td>            </tr>            <tr>                <td><?php echo $category['image']; ?></td>            </tr>            <tr>                <td><?php echo $category['price']; ?></td>            </tr>        </table>
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

为了显示每个类别的所有产品,您需要在使用第二个函数获取产品时传递类别名称:


<?php

    function getCategory() {

        $db_conn = getConnection();

        if (!$db_conn) return false;


        $sql = "SELECT DISTINCT category from products";

        $result = $db_conn->query($sql);

        return $result;

    }


    function getProduct($category) {

        $db_conn = getConnection();

        if (!$db_conn) return false;


        $sql = "SELECT * from products WHERE category = '" . $category . "'";

        $result = $db_conn->query($sql);

        return $result;

    }

?>

输出:


<?php $categories = getCategory(); ?>

<?php while ($category = $categories->fetch_assoc()) : ?>

    <div class="category">

        <h2><?php echo $category['name']; ?></h2>

        <div class="products">

            <?php $products = getProduct($category['name']); ?>

            <table>

                <?php while ($product = $products->fetch_assoc()): ?>

                    <tr>

                        <td><?php echo $product['name']; ?></td>

                    </tr>

                    <tr>

                        <td><img src="<?php echo $product['image']; ?>"/></td>

                    </tr>

                    <tr>

                        <td><?php echo $product['price']; ?></td>

                    </tr>

                <?php endwhile; ?>

            </table>

        </div>

    </div>

<?php endwhile; ?>


查看完整回答
反对 回复 2022-09-12
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

SELECT * FROM products ORDER BY category

然后只需检查自您输出的最后一条记录以来类别是否已更改,如果有,则显示类别名称,如果没有,则回显该记录。

如果您这样做,也不需要第一个查询。

另一种方法是,保留第一个查询,但将第二个查询更改为:

'SELECT * FROM products WHERE category = ' . $category

其中类别来自您的第一个查询。


查看完整回答
反对 回复 2022-09-12
  • 2 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信