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
Форумы портала PHP.SU :: Версия для печати :: Помогите составить запрос
Форумы портала PHP.SU » » Вопросы новичков » Помогите составить запрос

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

1. event - 09 Марта, 2012 - 22:21:28 - перейти к сообщению
Привет.
Нужно составить запрос, который будет делать выборку. Он должен выбирать 10 последних записей за 2 недели из таблицы torrents, у которых самые большие значения в ячейке karma.

Название ячейки где хранится дата: added, тип ячейки даты: datetime, пример даты, которая хранится в этой ячейке: 0000-00-00 00:00:00

В ячейке karma хранится число, тип этой ячейки: int(10).

Заранее спасибо.
2. Opposite - 09 Марта, 2012 - 22:32:33 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `torrents` WHERE now() - unix_timestamp(`added`) <= 50 400 ORDER BY karma DESC LIMIT 0, 10;
  2.  

Кажись, так Однако
3. event - 09 Марта, 2012 - 23:06:32 - перейти к сообщению
Opposite
PHP:
скопировать код в буфер обмена
  1. $query = sql_query("SELECT * FROM `torrents` WHERE now() - unix_timestamp(`added`) <= 50 400 ORDER BY karma DESC LIMIT 0, 10");
  2.  
  3. while ($row=mysql_fetch_array($query)) {
  4. echo $row['id'].$row['name'];
  5. }


Выдает: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\1.php on line 37
(Добавление)
Попробовал составить запрос сам, вот, что получилось:
PHP:
скопировать код в буфер обмена
  1. $query = sql_query("SELECT * FROM torrents WHERE ADDDATE(torrents.added, INTERVAL 14 DAY) > NOW() ORDER BY karma DESC LIMIT 10") or sqlerr(__FILE__, __LINE__);


Как-бы работает, проверьте на глупые ошибки. Улыбка
4. Opposite - 09 Марта, 2012 - 23:21:04 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `torrents` WHERE unix_timestamp() - unix_timestamp(`added`) <= 50400 ORDER BY karma DESC LIMIT 0, 10;

Нет, не совсем так. Ща еще 1 вариант кину, но этот уже ближе к истине
5. event - 09 Марта, 2012 - 23:24:16 - перейти к сообщению
хмм, вроде плохо работает, то...
6. Opposite - 09 Марта, 2012 - 23:25:02 - перейти к сообщению
Вот это за 2 недели.
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `torrents` WHERE unix_timestamp() - unix_timestamp(`added`) <= 1209600 ORDER BY karma DESC LIMIT 0, 10;
  2.  

(Добавление)
Там было за 14 часов Улыбка
7. event - 09 Марта, 2012 - 23:26:18 - перейти к сообщению
SELECT * FROM `torrents` WHERE unix_timestamp() - unix_timestamp(`added`) <= 50400 ORDER BY karma DESC LIMIT 0, 10;

Этот вообще ничего не отбирает...
8. Opposite - 09 Марта, 2012 - 23:27:44 - перейти к сообщению
не 50400, а 1209600 - это 60 * 60 * 24 * 14
9. event - 09 Марта, 2012 - 23:29:37 - перейти к сообщению
Этот вроде работает, тыкнул спасибку.
10. Opposite - 09 Марта, 2012 - 23:30:07 - перейти к сообщению
Хорошо

 

Powered by ExBB FM 1.0 RC1