2010-04-04 87 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