在查询结束时放置特定记录

时间:2011-02-22 16:09:17

标签: php sql loops

在查询中,我按名称(按字母顺序)排序,将查询粘贴在$ res中,然后循环结果。

while($rs = mysql_fetch_assoc($res)){
    echo $rs['name'];
}

现在,在while循环中有一个“网站管理员”名称。我需要使用“网站管理员”并将其放在循环的最后(因此它最后回显)或将“网站管理员/联盟计划网站”放在$ res中(在查询结束之前点击while循环。

2 个答案:

答案 0 :(得分:0)

最简单的方法是编辑您的查询并更改订单:

ORDER BY
  name

ORDER BY
  IF(name LIKE 'webmaster',1,0),
  name

注意:这个IF是mysql语法 - 你没有发布你正在使用的数据库。在postgres上它会是(不是100%肯定):

ORDER BY
  CASE WHEN name ILIKE 'webmaster' THEN 1 ELSE 0 ,
  name

编辑解释一下:通过这种方式更改订单,就像在名称为“网站管理员”或{{1}的情况下为包含1的订单添加其他列在所有其他情况下。首先通过这个“专栏”排序,“网站管理员”总是在最后(或者:所有“网站管理员” - 如果有不止一个)

答案 1 :(得分:0)

也许是这样的:

$webmasterArray = array();
while($rs = mysql_fetch_assoc($res))
{
    if($rs['name'] == "webmaster")
        $webmasterArray = $rs;
    else
        echo $rs['name'];
}
if($webmasterArray)
    echo $webmasterArray['name'];