mysql_fetch_assoc возвращает результаты в неправильном порядке

0

У меня есть следующий код:

    $sortorder = $_GET['sort'];
switch($sortorder)
{
 case "modulea":
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleanmodule` ASC");
 case "moduled":
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleanmodule` DESC");
 case "typea":
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleantype` ASC");
   var_dump($result2);
 case "typed":
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleantype` DESC");
 default:
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1");
}
while($result = mysql_fetch_assoc($result2))
{
 var_dump($result);
 $value .= "<tr><td><center>" . $result['cleanmodule'] . "</center></td><td><center>" . $result['cleantype'] . "</center></td><td><center>" . $directions[$result['direction']] . "</center></td></tr>";
}

Как вы можете видеть, он принимает переменную GET и, в зависимости от ее значения, выполняет определенный запрос. (Не волнуйтесь, это только тестовый код, я, очевидно, проверю ввод позже).

Моя проблема: выполняется правильный запрос, но mysql_fetch_assoc, похоже, переупорядочивает строки таким образом, который я не хочу.

Я тестирую случай typea, и когда я выполняю страницу, выполняется этот вызов var_dump - я могу увидеть результат на странице. Поэтому коммутатор определенно работает.

Но var_dump внутри оператора while выводит строки, упорядоченные первичным ключом в таблице, а не по моему запросу, cleantype.

Как я могу сделать mysql_fetch_assoc вывод строк так, как я их заказывал?

ТИА.

  • 0
    пожалуйста, отформатируйте ваш код
  • 1
    сделано, извините - хорошо выглядел в первый раз
Теги:

1 ответ

6
Лучший ответ

Вы забыли использовать break в конце всех ваших случаев...

Следовательно, ваш запрос default всегда выполнялся последним.

  • 0
    Упс. Благодарю. Это было просто.
  • 0
    switch {case '1': break; }
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню