2010-04-04 131 views
2

我試圖按優先級分組記錄,例如從while循環|分組記錄PHP

---優先順序:高度---

記錄...

---優先順序:中度---

記錄.. 。

---優先級:低---

記錄...

類似的東西,我應該怎麼做,在PHP? while循環通過具有int值(高= 3,中等= 2,低= 1)的優先級列來排序記錄。例如WHERE優先= '1'

標籤:「優先級:[優先級]」具有上述分組的記錄有關其水平

EDIT被設置:

<?php 

while($row = mysql_fetch_array($result)) 
{ 
    echo '<h1>Priority Level: ' . $row['priority'] . '</h1>'; 
    echo $row['name']; 
} 

?> 

就像那段代碼 -

標籤是分離關於它們的優先級的記錄的標籤。

回答

2

如果你確定結果由優先級則微不足道的東西訂購,因爲這:

$priority = null; 
while($row = mysql_fetch_array($result)) 
{ 
    if($row['priority'] != $priority) 
    { 
     echo '<h1>Priority Level: ' . $row['priority'] . '</h1>'; 
     $priority = $row['priority']; 
    } 
    echo $row['name']; 
} 

換句話說,你跟蹤在$priority變量的當前優先級。然後測試if條件中的優先級是否已更改。如果是,則爲echo優先級,並將當前優先級設置爲在當前行中找到的優先級。

請注意,如果行按優先級排序,則只能按預期工作(真正分組一次)。換句話說,當不同的優先級不分散在結果集中時。

+0

接受的解決方案,謝謝:) – MacMac 2010-04-04 21:57:59

+0

啊..它有點不起作用,但它'記錄'的記錄,但它只是給每個記錄不標籤每個組的標籤。 – MacMac 2010-04-04 22:06:06

+0

您確定結果集按優先級排序嗎?你能編輯你的問題並在那裏顯示SQL查詢嗎? – 2010-04-04 22:09:46

0

如果你使用mysql,你爲什麼不使用數據庫排序功能?

SELECT * 
FROM items 
ORDER BY priority DESC 
+0

不是查詢...我已經得到它的命令,我問的是分離記錄的PHP。 - 編輯帖子btw – MacMac 2010-04-04 21:51:14