Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在一页中列出每个类别标题下的产品_Php_Mysql_Arrays_Select_Categories - Fatal编程技术网

Php 在一页中列出每个类别标题下的产品

Php 在一页中列出每个类别标题下的产品,php,mysql,arrays,select,categories,Php,Mysql,Arrays,Select,Categories,我有两张桌子 第一个是类别,第二个是产品。 类别表包含类别id、类别名称、类别描述。 产品表包含产品id、产品名称、产品描述和类别id 我想将所有类别显示为标题,并在每个类别标题下仅列出4种相关产品 例如: Category1 Product 1, Product 2, product 3 Category 2 Product 4, product 5 我如何编写这个脚本。我是新手,请帮我试试这个: Select * from categories c left join pro

我有两张桌子 第一个是类别,第二个是产品。 类别表包含类别id、类别名称、类别描述。 产品表包含
产品id、产品名称、产品描述和类别id

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

例如:

Category1
 Product 1, Product 2, product 3


Category 2
  Product 4, product 5
我如何编写这个脚本。我是新手,请帮我试试这个:

Select * from 

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

order by c.catId

您可以参考本教程 为此,您需要执行一个递归函数 我称之为分类树


好的,我想你的问题没问题。试试这个

$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'];
   }
}

在Nytram的帖子的帮助下,我只是修改了代码。所以这个答案是99%要归功于纽约电车公司

    $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'];
       }
    }

它将仅显示组中的产品。但不显示每个类别标题。我需要在相关产品列表的顶部显示每个类别。您需要遍历结果。如何在产品while loop中为循环将产品数限制为4。运行循环4次。因此,您可以限制它或限制产品sql的结果(限制0,4)。与php.net保持联系。