Выбор марки авто из базы MySQL

Тема в разделе "Базы данных", создана пользователем vitek_gagra, 10 фев 2013.

Статус темы:
Закрыта.
Модераторы: latteo
  1. vitek_gagra

    vitek_gagra Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    12
    Здравствуйте, уважаемые форумчане.
    Подскажите пути решения вопроса.
    Вот сайт

    На странице продажи авто есть фильтр в котором можно выбрать марку авто по которой искать объявления.
    Марки подгружаются из базы данных.
    Марки отсортированы по алфавиту.

    Вопрос такой как сделать, что бы сначала были избранные марки например Toyota, Nissan, Mazda, Mitsubishi, Honda а потом остальные марки авто по алфавиту?

    Марки авто берутся из бд запросом
    Код:
    $query = @mysql_query("select * from ".$dbname." where parent_id=0 and active=1 ORDER BY aid ASC;");
     
  2. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.639
    Симпатии:
    1.337
    ORDER BY aid ASC, favor ASC
    где favor поле, где указано что это марка избранная
     
    vitek_gagra нравится это.
  3. vitek_gagra

    vitek_gagra Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    12
    в поле favor у всех марок стоит 0, у избранных 1 . Попробовал сделать ORDER BY aid ASC, favor=1 ASC не помогло, выводятся с сортировкой по aid только, favor не учитывая. Или не правильно сделал?
     
  4. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    732
    Симпатии:
    323
    Так наоборот нужно, если вам нужны сначала избранные марки:
    Код:
    ORDER BY favor ASC, aid ASC
    А если по алфавиту, то сортировать по полю в котором указана марка
    Код:
    ORDER BY marka ASC
     
    vitek_gagra нравится это.
  5. Nei

    Nei Nosce te ipsum

    Регистр.:
    5 сен 2009
    Сообщения:
    608
    Симпатии:
    479
    ORDER BY aid ASC, favor ASC
    В этом случае будет такой алгоритм: сортировка по марке, если марки равны - тогда сортировка по favor.
    А надо так: "ORDER BY favor ASC, aid ASC"
     
    vitek_gagra нравится это.
  6. vitek_gagra

    vitek_gagra Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    12
    При ORDER BY favor=1 ASC, aid ASC показывает избранные внизу списка после всех марок? а если делаю ORDER BY favor=1 DESC, aid ASC то избранные вверху списка но уже в обратном порядке сортируются, а как сделать что бы избранные вверху и по алфавиту сортировались?
     
  7. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.724
    Симпатии:
    2.100
    давайте сначала, в каких полях сохраняются избранные, а в каких марка автомобиля? логично б было предположить, что марка сохраняется в отдельной таблице в виде пар ключ-значение и ключ используется в основной. Это делается для того, чтоб избежать дублирование информации и уменьшить размер таблички.
    в идеале ORDER BY избранное DESC, марка ASC
     
  8. vitek_gagra

    vitek_gagra Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    12
    Всем спасибо, проблему решил так ORDER BY favor DESC, aid ASC и у марок в favor просто в обратном порядке цифры проставил
     
Статус темы:
Закрыта.