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 :: Помогите пожалуйста составить запрос сортировки

 PHP.SU

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


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

> Без описания
gheka
Отправлено: 20 Марта, 2013 - 15:10:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


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




Здравствуйте, есть 2 таблицы

goods - поля ( id, price, name, date )
и
recommend - поля ( id, id_goods, rate, date )

Нужно составить запрос так чтобы выводило товары списком из таблицы GOODS
Сначала товары которые есть в таблице RECOMMEND и их RATE >= 10 а по том все остальные товары не зависимо есть они в таблице RECOMMEND

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $t = "SELECT " . DB_PREFIX . "goods.* FROM `" . DB_PREFIX . "goods` LEFT JOIN `" . DB_PREFIX . "recommend` ON " . DB_PREFIX . "goods.id=" . DB_PREFIX . "recommend.id_goods WHERE  " . DB_PREFIX . "recommend.rate>='10' "";
  3. $result = mysql_query ( sprintf ( $t ) );
  4.  

Такой запрос выводит только товары которые в таблице RECOOMEND и RATE >= 10
Помогите дописать запрос так чтобы выводило так как нужно.
 
 Top
LIME
Отправлено: 20 Марта, 2013 - 15:18:09
Post Id


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


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT " . DB_PREFIX . "goods.* FROM `" . DB_PREFIX . "goods` LEFT JOIN `" . DB_PREFIX . "recommend` ON " . DB_PREFIX . "goods.id=" . DB_PREFIX . "recommend.id_goods ORDER BY  " . DB_PREFIX . "recommend.rate
??
(Добавление)
DESC

(Отредактировано автором: 20 Марта, 2013 - 15:19:08)

 
 Top
gheka
Отправлено: 20 Марта, 2013 - 15:28:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


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




LIME пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT " . DB_PREFIX . "goods.* FROM `" . DB_PREFIX . "goods` LEFT JOIN `" . DB_PREFIX . "recommend` ON " . DB_PREFIX . "goods.id=" . DB_PREFIX . "recommend.id_goods ORDER BY  " . DB_PREFIX . "recommend.rate
??
(Добавление)
DESC


Почти но не совсем так он выводит все товары в перед которые есть в таблице RATE а нужно только RATE >= 10
 
 Top
LIME
Отправлено: 20 Марта, 2013 - 15:47:59
Post Id


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


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT " . DB_PREFIX . "goods.* FROM `" . DB_PREFIX . "goods` LEFT JOIN `" . DB_PREFIX . "recommend` ON " . DB_PREFIX . "goods.id=" . DB_PREFIX . "recommend.id_goods WHERE  " . DB_PREFIX . "recommend.rate IS NULL OR  " . DB_PREFIX . "recommend.rate>9  ORDER BY  " . DB_PREFIX . "recommend.rate

(Отредактировано автором: 20 Марта, 2013 - 15:49:14)

 
 Top
gheka
Отправлено: 20 Марта, 2013 - 15:53:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


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




LIME пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT " . DB_PREFIX . "goods.* FROM `" . DB_PREFIX . "goods` LEFT JOIN `" . DB_PREFIX . "recommend` ON " . DB_PREFIX . "goods.id=" . DB_PREFIX . "recommend.id_goods WHERE  " . DB_PREFIX . "recommend.rate IS NULL OR  " . DB_PREFIX . "recommend.rate>9  ORDER BY  " . DB_PREFIX . "recommend.rate


Опять не работает, не выводит те товары которых нет в таблице RATE
 
 Top
LIME
Отправлено: 20 Марта, 2013 - 15:53:50
Post Id


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


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


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




я исправлял
 
 Top
gheka
Отправлено: 20 Марта, 2013 - 16:03:49
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


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




LIME пишет:
я исправлял

Огорчение Вообще не выводит товары не те, не другие
 
 Top
LIME
Отправлено: 20 Марта, 2013 - 16:07:13
Post Id


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


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


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




CODE (SQL):
скопировать код в буфер обмена
  1.  WHERE  (" . DB_PREFIX . "recommend.rate IS NULL) OR  " . DB_PREFIX . "recommend.rate>9
может так?
 
 Top
gheka
Отправлено: 20 Марта, 2013 - 16:11:08
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


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




LIME пишет:
CODE (SQL):
скопировать код в буфер обмена
  1.  WHERE  (" . DB_PREFIX . "recommend.rate IS NULL) OR  " . DB_PREFIX . "recommend.rate>9
может так?


Выводит только товары которые в таблице RECOMMEND

(Отредактировано автором: 20 Марта, 2013 - 16:11:36)

 
 Top
LIME
Отправлено: 20 Марта, 2013 - 16:29:20
Post Id


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


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


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




не может быть
(Добавление)
ага
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT " . DB_PREFIX . "goods.* , " . DB_PREFIX . "recommend.rate FROM

(Добавление)
и покажи сформированный запрос
 
 Top
gheka
Отправлено: 20 Марта, 2013 - 16:40:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


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




LIME пишет:
не может быть
(Добавление)
ага
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT " . DB_PREFIX . "goods.* , " . DB_PREFIX . "recommend.rate FROM

(Добавление)
и покажи сформированный запрос


Вот
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $t = "SELECT " . DB_PREFIX . "goods.*, " . DB_PREFIX . "recommend.rate FROM `" . DB_PREFIX . "goods` LEFT JOIN `" . DB_PREFIX . "recommend` ON " . DB_PREFIX . "goods.id=" . DB_PREFIX . "recommend.id_goods WHERE (" . DB_PREFIX . "recommend.rate IS NULL) OR " . DB_PREFIX . "recommend.rate>9 ORDER BY " . DB_PREFIX . "recommend.rate DESC";
  3. $result = mysql_query ( sprintf ( $t ));
  4.  
  5.  

Также не выводит товары которых нет в RECOMMEND
 
 Top
LIME
Отправлено: 20 Марта, 2013 - 16:42:34
Post Id


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


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


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




echo $t сюда
рябит от твоих префиксов
(Добавление)
sprintf вообще не нужен
кто это придумало? брррр
 
 Top
gheka
Отправлено: 20 Марта, 2013 - 16:48:45
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


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




LIME пишет:
echo $t сюда
рябит от твоих префиксов
(Добавление)
sprintf вообще не нужен
кто это придумало? брррр


Не совсем понял про echo $t пусть будет так

[code=SQL]
$t = "SELECT goods.*, recommend.rate FROM `goods` LEFT JOIN `recommend` ON goods.id=recommend.id_goods WHERE (recommend.rate IS NULL) OR recommend.rate>9 ORDER BY recommend.rate DESC";
$result = mysql_query ( sprintf ( $t ));

LIME пишет:

sprintf вообще не нужен
кто это придумало? брррр


Просто тут не полный код я передаю параметры через mysql_real_escape_string ()

(Отредактировано автором: 20 Марта, 2013 - 16:50:31)

 
 Top
LIME
Отправлено: 20 Марта, 2013 - 17:02:14
Post Id


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


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


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




можно долго разбираться
проще тебе будет соеденить 2 запроса через UNION
нагугли сам как
там просто
 
 Top
gheka
Отправлено: 20 Марта, 2013 - 17:04:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


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




LIME пишет:
можно долго разбираться
проще тебе будет соеденить 2 запроса через UNION
нагугли сам как
там просто

Хорошо спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB