Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сортировка с JOIN'ом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: не работает
V2oD2o
Отправлено: 03 Февраля, 2013 - 08:48:34
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. //$tyre=массив.
  3.  
  4. $tyre=explode("|", $val);
  5. $query="SELECT DISTINCT `model_name`,`model`.`vendor_id`,`vendor`.`vendor_id`,`vendor_name`
  6. FROM `model` JOIN `vendor`
  7. WHERE `model`.`vendor_id` = `vendor`.`vendor_id` AND `model`.`model_id`='".$tyre[0]."'
  8. ORDER BY `vendor`.`vendor_name`";
  9. $sql=mysql_query($query) or die(mysql_error());
  10. while ($row=mysql_fetch_assoc($sql)) {
  11.         echo $row['vendor_name']." ".$row['model_name']." ".$tyre[1]."/".$tyre[2]." R".$tyre[3]."<br>";
  12. }


Вываливает:
Michelin Energy Saver 195/65 R15
Continental Conti4x4Contact 195/65 R15
Continental ContiEcoContact 3 195/65 R15
Barum Bravuris 195/65 R15
Barum Bravuris 2 195/65 R15
Dunlop Digi-Tyre Eco EC201 195/65 R15
Dunlop Graspic DS3 195/65 R15

т.е. с группировкой, но без алфавитной сортировки..
 
 Top
imya
Отправлено: 03 Февраля, 2013 - 08:51:52
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




ASC, DESC дописать забыли?


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
V2oD2o
Отправлено: 03 Февраля, 2013 - 08:58:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




imya пишет:
ASC, DESC дописать забыли?


все перепробовал, результат тот же..
можно даже не писать ORDER - результат что с ним что без - все равно тот же..

(Отредактировано автором: 03 Февраля, 2013 - 08:58:38)

 
 Top
Мелкий Супермодератор
Отправлено: 03 Февраля, 2013 - 09:07:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Проверьте первую строку, не содержит ли та пробел первым символом.


-----
PostgreSQL DBA
 
 Top
V2oD2o
Отправлено: 03 Февраля, 2013 - 09:27:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




если имеется ввиду "$tyre=explode("|", $val);"
то $val="96|195|65|15"; - пробелов нет

по сути нам надо ID модели шины, по этому "модель_ID" можно намутить в соседней таблице `vendor` - "производитель_ID", по которому нам и надо отсортировать все полученное, видимо тут есть какая то хитрость.. о которой я не знаю ввиду того что не часто работаю с JOIN'ами..
 
 Top
Мелкий Супермодератор
Отправлено: 03 Февраля, 2013 - 09:59:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Я про эту:
V2oD2o пишет:
Michelin Energy Saver 195/65 R15

Единственная выбивается, остальные отсортированы.


-----
PostgreSQL DBA
 
 Top
V2oD2o
Отправлено: 03 Февраля, 2013 - 10:28:37
Post Id


Частый гость


Покинул форум
Сообщений всего: 143
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Мелкий пишет:
Я про эту:
V2oD2o пишет:
Michelin Energy Saver 195/65 R15

Единственная выбивается, остальные отсортированы.


да не не, там список около 200+ позиций, там и после "Y" есть "D" - например..

Начитался, все оказалось просто:

PHP:
скопировать код в буфер обмена
  1. $query="SELECT DISTINCT `model_size`.`model_id`,
  2.         `model_size`.`size_width`,
  3.         `model_size`.`size_profile`,
  4.         `model_size`.`size_radius`,
  5.         `model`.`season_id`,
  6.         `model`.`model_name` AS MODELNAME,
  7.         `vendor`.`vendor_name` AS VENDORNAME
  8. FROM `model_size`
  9.         INNER JOIN `model` ON `model`.`model_id`=`model_size`.`model_id`
  10.         INNER JOIN `vendor` ON `model`.`vendor_id`=`vendor`.`vendor_id`
  11. WHERE `model_size`.`size_width`='".$params[0]."'
  12.         AND `model_size`.`size_profile`='".$params[1]."'
  13.         AND `model_size`.`size_radius`='".str_replace("R", "", $params[2])."' ".$type."
  14. GROUP BY VENDORNAME";
  15.  


з.ы. все логично, что ничего не сортировалось)
(Добавление)
V2oD2o пишет:
Мелкий пишет:
Я про эту:
V2oD2o пишет:
Michelin Energy Saver 195/65 R15

Единственная выбивается, остальные отсортированы.


да не не, там список около 200+ позиций, там и после "Y" есть "D" - например..

Начитался, все оказалось просто:

PHP:
скопировать код в буфер обмена
  1. $query="SELECT DISTINCT `model_size`.`model_id`,
  2.         `model_size`.`size_width`,
  3.         `model_size`.`size_profile`,
  4.         `model_size`.`size_radius`,
  5.         `model`.`season_id`,
  6.         `model`.`model_name` AS MODELNAME,
  7.         `vendor`.`vendor_name` AS VENDORNAME
  8. FROM `model_size`
  9.         INNER JOIN `model` ON `model`.`model_id`=`model_size`.`model_id`
  10.         INNER JOIN `vendor` ON `model`.`vendor_id`=`vendor`.`vendor_id`
  11. WHERE `model_size`.`size_width`='".$params[0]."'
  12.         AND `model_size`.`size_profile`='".$params[1]."'
  13.         AND `model_size`.`size_radius`='".str_replace("R", "", $params[2])."' ".$type."
  14. GROUP BY VENDORNAME";
  15.  


з.ы. все логично, что ничего не сортировалось)


может кто читать будет, поправка:
надо убрать DISTINCT и вместо GROUP - ORDER Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB