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]   

> Без описания
real1l
Отправлено: 19 Августа, 2009 - 12:27:32
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2009  


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




В общем, такой вопрос:
На странице выводится новость(в запросе фигурируют параметры id, название & текст)
Переменные $query['text'] & $query['title'] вывожу, а переменную $query['id'] нужно приравнять к переменной $in_id

Далее выводится список других новостей, последние 4 записи, у которых id< чем переменная $in_id.

Собственно, прошу помощи осуществить такой запрос, заранее спасибо!
 
 Top
Champion Супермодератор
Отправлено: 19 Августа, 2009 - 12:31:54
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




SELECT id, название & текст FROM ...
WHERE id < $in_id
ORDER BY if desc
LIMIT 4
 
 Top
Roler
Отправлено: 19 Августа, 2009 - 12:32:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


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




По отдельности просто, но вот вместе, я не представляю как. Если только UNION, но я с ним не работал, не знаю.

P.S. Champion, у тебя не выведется первая новость. Я так понял, ему надо всё одним запросом.

(Отредактировано автором: 19 Августа, 2009 - 12:32:48)

 
 Top
SAD
Отправлено: 19 Августа, 2009 - 12:36:29
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




будет вложенный запрос.
сначала отсортировать по убыванию (вложенный запрос), потом уже выбирать то ,что нужно(основной).
 
 Top
Champion Супермодератор
Отправлено: 19 Августа, 2009 - 12:48:13
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Roler пишет:
P.S. Champion, у тебя не выведется первая новость. Я так понял, ему надо всё одним запросом.
Честно гворя, я тоже не особо понял. То, что я написал, выбрет 4 новости. А он может уже как хочет сделать. Первю целиком, вторую и остальные - только название...
(Добавление)
SAD этого не надо
 
 Top
real1l
Отправлено: 19 Августа, 2009 - 15:07:55
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2009  


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




Ребята, все будет в 2 запроса: в первом новость "по полной", а другие новости только превьюшки и названия.
Из первой новости id вытаскиваю только для того, чтобы использовать его в другом запросе.
Но вот приравнять $in_id = $query['id'];
И затем заюзать ее в запросе не удается...
 
 Top
Champion Супермодератор
Отправлено: 19 Августа, 2009 - 15:13:55
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Ну тогда первый запрос
SELECT id, название & текст FROM ...
WHERE id = $in_id

А второй - тот, что я выше написал
(Добавление)
Только без текста нововсти, наверное
 
 Top
real1l
Отправлено: 19 Августа, 2009 - 15:26:27
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2009  


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




Первый запрос у меня такой:
SELECT id,title,text FROM db ORDER BY id DESC LIMIT 1

Далее, нужно приравнять $query['id'] к переменной $in_id, вот тут у меня видимо синтаксис неправильный
$in_id = $query['id']; — вот так не пашет

Второй запрос:
SELECT title,img FROM db ORDER BY id DESC LIMIT 4 WHERE id<'$in_id'

Вот это мне нужно, но где—то здесь беда естьНедовольство, огорчение
 
 Top
Champion Супермодератор
Отправлено: 19 Августа, 2009 - 15:53:15
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




1 - ты удивишься, но ты зачем-то выбираешь в первом запросе одну единственную первую запись из таблицы. Я ж тебе написал почти рабочий запрос, только имена полей поправить надо было. А ты придумал такую пошлятину.
2 - не нужно фильтровать данные средствами PHP. Есть WHERE для этого в SQL.
3 - сравнение в PHP делается оператором ==. = - это присваивание.
4 - во втором запросе и везде и всегда WHERE пишется сразу после FROM
 
 Top
real1l
Отправлено: 19 Августа, 2009 - 16:05:40
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2009  


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




Это я придумал еще до твоей помощи, насчет ==, я просто опечатался, пардон.
Спасибо за помощь!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB