2014-10-07 50 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

相關問題