Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод всех строк за этот месяц 
:(
    Опции темы
jone31
  Дата 18.11.2009, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



подскажите, как вывести из БД записи за этот месяц. В бд есть столбец time(timestamp) который отвечает за дату добавления. 
PM MAIL   Вверх
Ипатьев
Дата 18.11.2009, 19:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



вообще-то, к РНР этот вопрос не имеет никакого отношения.
Это чистый SQL.

Вы когда-нибудь составляли запросы с оператором WHERE?
PM MAIL   Вверх
jone31
  Дата 18.11.2009, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



да, но как мне написать на php запрос что бы например вывести в интервале месяца
Код
$q2 = mysql_query("SELECT * FROM `events` WHERE `time` = ????? "); 


как в запросе написать интервал: 2009-11-01 00:00:00 - 2009-11-31 24:00:00 ?

Это сообщение отредактировал(а) jone31 - 18.11.2009, 19:27
PM MAIL   Вверх
Ипатьев
Дата 18.11.2009, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



ну, во-первых, можно писать не равенство, а интервал. 
скажем, вы можете в РНР получить дату первого числа следующего месяца и последннего числа предыдущего?

во-вторых, чтобы писать равенство, лучше хранить не unix time, а дату во встроенном формате mysql, для которого есть множество функций преобразования
PM MAIL   Вверх
jone31
  Дата 18.11.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



если писать не равенство то их получиться два, ведь насколько мне известно с  двойными неравенствами не дружит.
PM MAIL   Вверх
ruX
Дата 18.11.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: нет
Всего: 3



мой вариант
Код

SELECT FROM `events` WHERE `time` > UNIX_TIMESTAMP( CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-01') 

аналогично можно было на пхп подсчитать начало месяца в юникстайм и подставить
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 18.11.2009, 19:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Кто не дружит? 
И почему два? Два двойных имеется в виду? В этом нет ни малейшей нужды.
просто сравнить дату, чтобы она ыла больше последнего дня предыдущего месяца и меньше первого для следующего. два сравнения
PM MAIL   Вверх
ruX
Дата 18.11.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: нет
Всего: 3



Цитата(jone31 @  18.11.2009,  19:34 Найти цитируемый пост)
если писать не равенство то их получиться два, ведь насколько мне известно с  двойными неравенствами не дружит.

Вам не правильно известно
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
jone31
  Дата 18.11.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



что то здесь не так:
Код
$q2 = mysql_query("SELECT FROM `events` WHERE `time` > UNIX_TIMESTAMP( CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-01')"); 

while($n1 = mysql_fetch_array($q2)){
    echo '
    <td>'.$n1['user_id'].'</td>
    <td>'.$n1['time'].'</td>
    <td>'.$n1['type'].'</td>
    <td>'.$n1['msg'].'</td>
  </tr>
';
}
Цитата
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

PM MAIL   Вверх
bars80080
Дата 18.11.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



одной скобки не хватает

Код

SELECT FROM `events` WHERE `time` > UNIX_TIMESTAMP( CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-01'))

PM MAIL WWW   Вверх
Pitlord
Дата 18.11.2009, 20:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: нет
Всего: 7



Цитата(bars80080 @  18.11.2009,  20:19 Найти цитируемый пост)
    
SELECT FROM `events` WHERE `time` > UNIX_TIMESTAMP( CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-01'))

Типа поля TIMESTAMP не UNIX TIMESTAMP.
PM MAIL   Вверх
jone31
  Дата 18.11.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @  18.11.2009,  20:19 Найти цитируемый пост)
одной скобки не хватаеткод SQL1:SELECT FROM `events` WHERE `time` > UNIX_TIMESTAMP( CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-01'))

да, я уже заметил, но та же ошибка. Тут выражение UNIX_TIMESTAMP неверно записано.

Добавлено через 1 минуту и 30 секунд
Цитата(Pitlord @  18.11.2009,  20:26 Найти цитируемый пост)
Типа поля TIMESTAMP не UNIX TIMESTAMP.

эт разве не одно и тоже?

Добавлено через 5 минут и 35 секунд
мне наверно лучше будет из всех записей выбрать  нужные при помощи php.
PM MAIL   Вверх
Ипатьев
Дата 18.11.2009, 20:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



нет, не лучше.
так вообще никогда не надо делать
если возникают такие идеи, то лучше совсем ничего не делать, а найти себе какое-нибудь другое занятие.
PM MAIL   Вверх
jone31
  Дата 18.11.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



Цитата(Ипатьев @  18.11.2009,  20:38 Найти цитируемый пост)
нет, не лучше.так вообще никогда не надо делатьесли возникают такие идеи, то лучше совсем ничего не делать, а найти себе какое-нибудь другое занятие.


почему ты так считаешь?

Это сообщение отредактировал(а) jone31 - 18.11.2009, 20:40
PM MAIL   Вверх
Pitlord
Дата 18.11.2009, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 31.10.2009

Репутация: нет
Всего: 7



Цитата(jone31 @  18.11.2009,  20:26 Найти цитируемый пост)
эт разве не одно и тоже?

http://dev.mysql.com/doc/refman/5.0/en/datetime.html
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.