Php 返回列多次等于ID的列表?

Php 返回列多次等于ID的列表?,php,mysql,Php,Mysql,我正在尝试输出基于(prodCategory)的产品列表,请参见以下表格结构: 这是我的类别表结构: 然后我的产品表结构: 正如您在下图中所看到的,我已经得到了要输出的类别,以及与prodCategory相等的第一个产品 因此,问题是如何返回与(prodCategory)匹配的所有产品,我的代码如下: <dl class="accordion"> <?php $query = "SELECT * FROM cate

我正在尝试输出基于(prodCategory)的产品列表,请参见以下表格结构:

这是我的类别表结构:

然后我的产品表结构:

正如您在下图中所看到的,我已经得到了要输出的类别,以及与prodCategory相等的第一个产品

因此,问题是如何返回与(prodCategory)匹配的所有产品,我的代码如下:

<dl class="accordion">
            <?php 
                $query = "SELECT * FROM category WHERE catState = 1";
                $result = $conn->query($query);
                $no=1;
                while($row = $result->fetch_object()){
                    $catprod = $row->catID;
                if ($no==200) {
                    echo '';
                    $no = 1;
                }
            ?>
            <dt><span><?php echo $row->catName; ?></span></dt>
            <dd>
            <?php   
                $queryprod = "SELECT * FROM products WHERE prodCategory = $catprod";
                echo $queryprod;
                $resultprod = $conn->query($queryprod);
                $rowprod = $resultprod->fetch_object();
            ?>
                <ul class="list">
                    <li><?php echo $rowprod->prodName; ?></li>
                </ul>
            </dd>
            <?php
                $no++;
                }
            ?>
        </dl>


显然你需要一个基本的知识,我猜你需要这个

Select a.prodID,a.prodName from product a JOIN category b
on a.prodCategory=b.catID where b.catState=1

我们可以使用连接,也可以使用mysql的旧方法:

select p.* from product p, category c where p.prodCategory = c.catID and c.catState= 1;

感谢您的建议和回答,我在没有使用JOIN的情况下将代码修改为以下内容,但在使用多个表时,使用JOIN是一种很好的方法,我需要进一步研究

<?php 
                $query = "SELECT * FROM category WHERE catState = 1";
                $result = $conn->query($query);
                $no=1;
                while($row = $result->fetch_object()){
                    $catprod = $row->catID;
                if ($no==200) {
                    echo '';
                    $no = 1;
                }
            ?>
            <dt><span><?php echo $row->catName; ?><?php echo $catprod; ?></span></dt>
            <dd>
            <?php 
                $queryprod = "SELECT * FROM products WHERE prodCategory = $catprod";
                $resultprod = $conn->query($queryprod);

                while($rowprod = $resultprod->fetch_object()){
                echo '<ul class="list">
                    <li>' . $rowprod->prodName . '</li>
                </ul>';
                }
                $resultprod->free();
            ?>
            </dd>
            <?php
                $no++;
                }
            ?>

您需要了解
加入
。您需要的查询是基本SQL语法。