-1

我有两个表第一个是类别,第二个是产品。Categories 表包含cat_id, cat_name, Cat_desc. Products 表包含product_id, product_name, Product_desc and cat_id

我想将所有类别显示为标题,并在每个类别标题下仅列出 4 个相关产品。

例如:

Category1
 Product 1, Product 2, product 3


Category 2
  Product 4, product 5

我该如何编写这个脚本。我是新手请帮忙

4

4 回答 4

3

好的,我认为您的问题可以。试试这个...

$sql = "SELECT cat_id, cat_name FROM  categories ";
$query = mysql_query($sql);
while($result = mysql_fetch_array($query)){
   echo $result['cat_name'];
   $sql1 = "SELECT * FROM products WHERE cat_id=".$result['cat_id'];
   $query1 = mysql_query($sql1);
   while($row  = mysql_fetch_array($query1)){
      echo $row['product_name'];
   }
}

并参考这个http://php.net/manual/en/book.mysql.php

于 2012-11-15T09:44:32.497 回答
1

在 Nytram 的帖子的帮助下,我只是更改了代码。所以这个答案 99% 归功于 Nytram。

    $sql = "SELECT cat_id, cat_name FROM  categories ";
$query = mysql_query($sql);
while($result = mysql_fetch_array($query)){
   echo $result['cat_name'];

更改后的行是:

$sql1 = "SELECT * FROM products WHERE cat_id='".$result['cat_id']."' LIMIT 0,10";

然后使用相同的代码

 $query1 = mysql_query($sql1);
       while($row  = mysql_fetch_array($query1)){
          echo $row['product_name'];
       }
    }
于 2012-11-15T13:37:18.600 回答
0

试试这个 ::

Select * from 

categories c left join products p on (p.catId = c.catId)

order by c.catId
于 2012-11-15T09:34:43.737 回答
0

你可以参考这个教程你需要为此做一个递归函数
我称之为这个类别树

http://codeassembly.com/How-to-display-inifinit-depth-expandable-categories-using-php-and-javascript/

于 2012-11-15T09:37:01.687 回答