2014-10-07 54 views
0

我试图显示产品的列表取决于他们在我的程序中的类别。到目前为止,这是我的代码看起来像:PHP while while显示类别,然后它下面的产品

$query = "SELECT products_name, categories_desc, id, price 
     FROM products, categories 
     WHERE products.categories_id = categories.categories_id"; 

$result = mysql_query($query); 

while($row=mysql_fetch_array($result)){ 
    echo "<b>" . $row['categories_desc'] . "</b><br>"; 

    while($row=mysql_fetch_array($result)){ 
     echo "<input type='checkbox' name='" . $row['products_name'] . "' value='" . $row['price'] . "'>" . $row["products_name"] . "</br>"; 
    } 
} 

但很明显,我做错了什么。它只显示第一类,然后显示所有产品。帮助,任何人?提前致谢!

+0

首先,你应该正确格式化!照顾缩进! – powtac 2014-10-07 15:00:08

+1

固定。对于那个很抱歉。 – 2014-10-07 15:01:56

+0

如果您不打算将数据读入多维数组,您应该应用'ORDER BY'子句以获得更好的类别分组。 – 2014-10-07 15:48:59

回答

0

你不需要第二个循环。这是你程序中的错误。

它应该是这样的:

$query = "SELECT products_name, categories_desc, id, price 
     FROM products, categories 
     WHERE products.categories_id = categories.categories_id"; 

$result = mysql_query($query); 
$last_category=''; 
while($row=mysql_fetch_array($result)){ 
    if ($last_category!=$row['categories_desc']){ 
     echo "<b>" . $row['categories_desc'] . "</b><br>"; 
     $last_category=$row['categories_desc']; 
    } 

    echo "<input type='checkbox' name='" . $row['products_name'] . "' value='" . $row['price'] . "'>" . $row["products_name"] . "</br>"; 
} 
+0

啊,我明白了。正是我在找什么。非常感谢你做的这些。 :d – 2014-10-07 15:14:28

相关问题