从while循环分组记录| PHP

时间:2010-04-04 21:40:48

标签: php mysql grouping while-loop

我正在尝试按照优先级对记录进行分组,例如

  

---优先级:高---

     

记录...

     

---优先级:中等---

     

记录...

     

---优先级:低---

     

记录...

这样的事情,我怎么用PHP做到这一点? while循环按优先级列排序记录,该列具有int值(high = 3,medium = 2,low = 1)。例如 WHERE priority ='1'

标签:“优先级:[优先级]”必须设置在有关其级别的分组记录之上

修改

<?php

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

?>

就像那段代码一样 -

标签是分隔有关其优先级的记录的标签。

2 个答案:

答案 0 :(得分:3)

如果您确定结果是按优先顺序排序的话,那么就像这样简单:

$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优先级并将当前优先级设置为当前行中找到的优先级。

请注意,如果行按优先级排序,则只能按预期工作(真正分组一次)。换句话说,当不同的优先级没有分散在结果集中时。

答案 1 :(得分:0)

如果您使用mysql,为什么不使用数据库排序功能?

SELECT *
FROM items
ORDER BY priority DESC