Вывод с сортировкой

Alessandro

Новичок
Вывод с сортировкой

Добрый вечер!

У меня есть код который выводит переменные в виде выпадающего меню. Мне необходимо сделать так чтобы первая переменная в этом списке была опеределана ранее заданной переменной.
Ну т.е. у меня есть переменная со значением Тойота. Неоходимо чтобы список выводился Тойота, БМВ,ЖИГУЛИ (хотя главное чтобы на 1 месте стояла именно переменная Тойота, а дальше все равно в каком порядке, но при этом список должен быть весь.
Сам код :
PHP:
<select name ="motor"> 
<?php 
 $res = mysql_query("SELECT * FROM motor ORDER BY motor"); 
  while ($row = mysql_fetch_array($res))  
  { 
  print "<option value='".$row["motor"]."'>".$row["motor"];      
  }
Спасибо.
 

tf

крылья рулят
Alessandro, что такое запись тайота - просто произвольная от данных базы строка или она еще как-то находится?
 

Alessandro

Новичок
что такое запись тайота - просто произвольная от данных базы строка или она еще как-то находится?
При добавлении данных пользователь выбирал из такого же списка название своего авто. Теперь он начинает редактировать данные о своем авто и надо чтобы 1 значение (верхнее) в этом выпадающем меню было то авто, которое он уже определил ранее. Поэтому у меня есть переменная с названием авто пользователя, которое хранится в отдельной таблице. И есть выпадающее меню с названиями всех авто. И соответственно, нужно мне это для того, чтобы если у пользователя не сменилась марка авто, то он это меню вообще не трогал.
 

tf

крылья рулят
а ну тогда тебе поможет простой html
<option value="Тойота" selected>Тойота</option>
 

Alessandro

Новичок
Автор оригинала: tf
а ну тогда тебе поможет простой html
<option value="Тойота" selected>Тойота</option>
Нет это не вариант. Если у пользователя будет автомобиль не Тойота, а БМВ ?
 

tf

крылья рулят
Alessandro, смерти моей хочеш?
<option value="Тойота">Тойота</option>
<option value="БМВ" selected>БМВ</option>
<option value="ЖИГУЛИ" selected>ЖИГУЛИ</option>
сможет сгенерить такой вывод html

ты меня не понимаеш или я тебя?
 

Alessandro

Новичок
ты меня не понимаеш или я тебя?
Ты меня не понимаешь.
1. Значения которые появляются в выпадающем меню они берутся с таблицы, т.е постоянно могут изменятся, а значит и список менюшки постоянно будет изменятся.
2. HTML так и не решает вопрос о том, что для каждого пользователя 1 строка выпадающей менюшки будет имеено такая какой у него авто.
 

tf

крылья рулят
ладно фиг с ним
как бы я сделал

выбрал все автомобили в массив
нашел там нужнаю запись (о тачке юзера)
вытащил ее из массива и в массиве удалил, добавил запись в начало

но можно попробовать составить запрос (о чем ты не просил)
ps/ у меня пока фантазия на нормальный запрос не выходит :(
 

baev

‹°°¬•
Команда форума
PHP:
  while ($row = mysql_fetch_array($res))  
  { 
  print "<option value='".$row["motor"];
  if ($row["motor"]='toyota'){
    print " selected";
    }
  print "'>".$row["motor"];      
  }
— вместо 'toyota' ставим переменную, где хранится марка тачки пользователя.
 

Observer

Новичок
ORDER BY motor != 'Тойота', motor

-~{}~ 16.10.06 10:57:

Я похоже поспешила с ответом. На самом деле вариант, предложенный baev, самый оптимальный.
 

Alessandro

Новичок
Автор оригинала: baev
PHP:
  while ($row = mysql_fetch_array($res))  
  { 
  print "<option value='".$row["motor"];
  if ($row["motor"]='toyota'){
    print " selected";
    }
  print "'>".$row["motor"];      
  }
— вместо 'toyota' ставим переменную, где хранится марка тачки пользователя.
Есть ошибка в if . Вместо того чтобы выводить Тойота, БМВ, Жигули, Лада, код выводит Тойота,Тойота,Тойота,Тойота.
А если выбросить if, то он выводит по старому, т.е. просто несортированным списком.
 

Alessandro

Новичок
Автор оригинала: Wicked
if ($row["motor"]='toyota'){
Не пойму автора в коде выше написано имеено так
PHP:
if ($row["motor"]='toyota'){
И равно вроде стоит. А вот с моей переменной код вот такой :
PHP:
if ($row["motor"]="$MOTOR_KEY"){
Но он работает все также не так. Он выводит эту переменную в выпадающем меню такое количество, сколько у меня всего записей.
 

tf

крылья рулят
'===' !== '='

-~{}~ 16.10.06 10:48:

PHP:
if ($row["motor"]===$MOTOR_KEY)
ps/ всеже ты не понимаеш сам чего хочеш
 

Alessandro

Новичок
Спасибо за ссылку. Господа я не кого не умоляю решать мой вопрос. Если вам впадлу вникнуть, ну не пишите лишние топики. Есть же хорошие люди на этом форуме вот код мне подсказали как изменить. Однако он не работает. Хотелось бы чтобы умной взор посмотрел в чем косяк и подсказал конкретное решение.
Код все тот же
PHP:
while ($row = mysql_fetch_array($res))   
  {  
  print "<option value='".$row["motor"]; 
   
  if ($row["motor"]="$MOTOR_KEY"){ 
    print "selected";
     }
    print "'>".$row["motor"];
        
  }
 

tf

крылья рулят
Хотелось бы чтобы умной взор посмотрел
умный взор? хм
тебе еще http://phpclub.ru/talk/showthread.php?postid=659083#post659083 было сказано также решить проблему как с этим кодом что baev написал, если не понял, могбы сразу сказать помоги написать код - непонимаю
[telepat mode on]
поставь двойное равно == (подумай что делают эти операторы = == ===)
и посмотри что там у тебя в $MOTOR_KEY
[telepat mode off]
а вообще выполни лучше отладку скрипта, давно бы уже
 

Wicked

Новичок
Это был не лишний топик. Это было тебе руководство к действию.
 

Alessandro

Новичок
поставь двойное равно == (подумай что делают эти операторы = == ===)
и посмотри что там у тебя в $MOTOR_KEY
В переменной $MOTOR_KEY у меня значение Тойота.
В таблице которая выводится в виде выпадающего меню 4 значения БМВ,Тойота,Лада,Жигули.
Задача : При данном значении переменной $MOTOR_KEY выпадающий список выглядит как Тойота, дальше все равно как.
В коде поставил двойное равно, список остается прежним.
Т.е он в этот IF вообще не заходит а выводит то что далее
PHP:
if ($row["motor"]==$MOTOR_KEY){ 
    print "selected";
      }
print "'>".$row["motor"];
Если убрать эту строчку то он ничего не выводит.
PHP:
print "'>".$row["motor"];
-~{}~ 16.10.06 12:56:

Вопрос решен. Решил его с помошью 2 запросов. В 1 случае выборка если ==. В 2 запросе выводится все, что не равно. Все спасибо за ответы как нужные так и не очень ;)
 
Сверху