我正在尝试按记录的优先级对记录进行分组,例如
— Priority: High —
Records…
— Priority: Medium —
Records…
— Priority: Low —
Records…
诸如此类,我该如何在PHP中做到这一点? while循环通过具有int值的优先级列对记录进行排序(高= 3,中= 2,低= 1).例如优先级=’1′
必须在分组记录的级别上方设置标签:“优先级:[优先级]”
编辑:
<?php
while($row = mysql_fetch_array($result))
{
echo '<h1>Priority Level: ' . $row['priority'] . '</h1>';
echo $row['name'];
}
?>
就像那段代码一样,标签是将记录优先级分开的标签.
解决方法:
如果您确定结果是按优先级排序的,那么这很简单:
$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条件中的优先级是否已更改.如果是这样,请回显优先级并将当前优先级设置为在当前行中找到的优先级.
请注意,如果按优先级对行进行排序,则只能按预期工作(正确分组一次).换句话说,当不同的优先级没有分散在结果集中时.