2015-03-13 26 views
-2

我想输出的基础上(prodCategory),请参阅下面的我的表结构的产品列表:返回一个列等于ID几次的列表?

这是我的类别表结构:

enter image description here

然后我的产品表结构:

enter image description here

正如你可以看到下面的图像,我已经得到了分类输出的第一款产品,它等于牛逼o prodCategory。

enter image description here

所以,问题是怎么做我返回匹配(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> 
+5

您需要了解'JOIN'。您需要的查询是基本的SQL语法。 – 2015-03-13 11:56:20

回答

0

很明显,你需要的基本知识约JOINS,想你这需要一个

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

我们可以使用连接,或者我们可以使用MySQL的老方法:

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

感谢您的建议和答案,我修改了我的代码,但未使用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++; 
       } 
      ?> 
相关问题