Размещение определенной записи в конце запроса - PullRequest
2 голосов
/ 22 февраля 2011

В запросе у меня есть порядок по имени (в алфавитном порядке), вставьте запрос в $ res, а затем переберите результаты.

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

Теперь в цикле while есть имя "веб-мастера",Мне нужно взять «Веб-мастер» и поместить его в конце цикла (чтобы он повторялся последним) или поместить «Веб-мастер / Партнерские программыWebshops» в $ res (в конце запроса перед выполнением цикла while.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Может быть, что-то вроде этого:

$webmasterArray = array();
while($rs = mysql_fetch_assoc($res))
{
    if($rs['name'] == "webmaster")
        $webmasterArray = $rs;
    else
        echo $rs['name'];
}
if($webmasterArray)
    echo $webmasterArray['name'];
0 голосов
/ 22 февраля 2011

Самый простой способ - отредактировать ваш запрос и изменить порядок с:

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, если имя "webmaster" или 0 в любом другом случае , упорядочивая сначала по этому «столбцу», «веб-мастер» всегда находится в конце (или: все «веб-мастера» - если их больше одного)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...