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 :: TOP новостей

 PHP.SU

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


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

> Без описания
AlfOz
Отправлено: 21 Августа, 2015 - 20:52:01
Post Id


Новичок


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


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




Сайт создавал не я, базу тоже, но программу написать заставили меня..
Задача: Создать top самых просматриваемых новостей за последний месяц.
Что имею
Две таблицы.
В одной - две колонки: id новости и ее рейтинг.
А во второй и дата публикации, и заголовок, и новостной раздел, и т.д и т.п. и др.

Сначала задача показалась простой, сделал из из первой выборку по рейтингу десятка новостей, сделал массив в РНР и из второй таблицы по id вытащил нужные мне новости.
...но база то ведется уже 10 лет!

Вопрос: как с минимальными машинными запросами выборку сделать только за определенную дату?

P.S. Там задача еще и посложнее, надо эти новости еще и с определенных разделов взять. Но это уже задача следующая.
 
 Top
DlTA
Отправлено: 21 Августа, 2015 - 21:24:42
Post Id



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


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


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




AlfOz
чет как то не понятно в чем проблема
сделать JOIN между двух таблиц
указав в условиях чтоб дата публикации новости была не старше чем ...
и отсортировать по рейтингу
и все
 
 Top
AlfOz
Отправлено: 22 Августа, 2015 - 09:22:30
Post Id


Новичок


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


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




DlTA
Вот, спасибо, Вам! А чуть поконкретнее... Ну, пример такого запроса, пожалуйста!
Подмигивание С меня пиво.
 
 Top
DlTA
Отправлено: 22 Августа, 2015 - 09:52:53
Post Id



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


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT новости.id, рейтинги.рейтинг
  2. FROM рейтинги
  3.   JOIN новости ON рейтинги.id = новости.id AND новости.дата_публикации >'какой там месяц'
  4. ORDER BY рейтинги.рейтинг ASC
  5. LIMIT 10
 
 Top
AlfOz
Отправлено: 22 Августа, 2015 - 18:40:21
Post Id


Новичок


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


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




Точно, с меня пиво!
Куда занести?

(Отредактировано автором: 22 Августа, 2015 - 18:42:10)

 
 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