Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Выборка записей по интервалам времени

Сообщения:  [1-10]   [11-12] 

 
 автор: Loki   (19.04.2006 в 17:01)   письмо автору
 
   для: pegas   (19.04.2006 в 08:14)
 

условие

AND date < '".$q['date']."' -> если выкинуть это и... 
                  AND date > '".$q['date']."' + INTERVAL 30 MINUTE 

у вас никогда не выполнится, так как date должно быть одновременно и меньше даты и больше этой же даты + 30 мин.

   
 
 автор: pegas   (19.04.2006 в 08:14)   письмо автору
 
   для: Pegas   (18.04.2006 в 08:44)
 

Собственно вот что у меня вышло, из этого видно что конкретно я хочу.
Но не работает так как надо.

$idusers = 1;
$idigrok = 1;
// определяем кол-во записей минус 1
$query = "SELECT *
          FROM army
          WHERE id_users = '".$idusers."'
          AND id_igrok = '".$idigrok."'
          AND uchet = '1';";
$query = mysql_query($query);
if (!$query) exit("Ошибка баз данных.");
$qr = mysql_num_rows($query);
$qr = (int)$qr-1;
// проверяем даты на интервал в 30 мин
for ($i = 1; $i <= $qr; $i++)
{
        $query = "SELECT *
                  FROM army
                  WHERE id_users = '".$idusers."'
                  AND id_igrok = '".$idigrok."'
                  AND uchet = '1'
                  ORDER BY 'date' DESC
                  LIMIT 1,".$i.";";
        $query = mysql_query($query);
        if (!$query) exit("Ошибка баз данных.");
        $q = mysql_fetch_array($query);
        $query = "SELECT *
                  FROM army
                  WHERE id_users = '".$idusers."'
                  AND id_igrok = '".$idigrok."'
                  AND uchet = '1'
                  AND date < '".$q['date']."'  -> если выкинуть это и...
                  AND date > '".$q['date']."' + INTERVAL 30 MINUTE
                  ORDER BY 'date' DESC
                  LIMIT 1,".$ii.";";  -> ...это то работает но не так как надо...
        $query = mysql_query($query);
        if (!$query) exit("Ошибка баз данных.");
        $q = mysql_fetch_array($query);
        echo $q['date']."</br>";
}

   
 
 автор: Loki   (18.04.2006 в 15:26)   письмо автору
 
   для: pegas   (18.04.2006 в 13:56)
 


DELETE FROM table WHERE putdate<NOW() - INTERVAL 30 MINUTE

   
 
 автор: pegas   (18.04.2006 в 13:56)   письмо автору
 
   для: cheops (из кафе)   (18.04.2006 в 13:36)
 

Нет.... не то я наверное не так вырозился.
Еще раз.

Есть допустим 500 записей в таблице и пользователи постоянно добавляют записи в нее, с различным временем. И надо из этих записей регулярно отбрасывать записи между которыми прошло менее 30 мин.

Получается что привязки к кокомуто конкретному времени нет.......

   
 
 автор: cheops (из кафе)   (18.04.2006 в 13:37)
 
   для: cheops (из кафе)   (18.04.2006 в 13:36)
 

Хотя у вас тип DATETIME, значит вместо '12:00:00' будет что-то вроде '2006-04-18 12:00:00'

   
 
 автор: cheops (из кафе)   (18.04.2006 в 13:36)
 
   для: pegas   (18.04.2006 в 12:39)
 

Тогда можно поступить примерно так
SELECT * FROM tbl WHERE date < '12:00:00' AND date > '12:00:00' + INTERVAL 30 MINUTE

и
SELECT * FROM tbl WHERE date < '12:00:00' AND date > '12:00:00' + INTERVAL 5 MINUTE

   
 
 автор: pegas   (18.04.2006 в 12:39)   письмо автору
 
   для: cheops (из кафе)   (18.04.2006 в 12:07)
 

начало интервала будет задоваться. допустим в 12,00.

   
 
 автор: pegas   (18.04.2006 в 12:39)   письмо автору
 
   для: cheops (из кафе)   (18.04.2006 в 12:07)
 

потерто

   
 
 автор: cheops (из кафе)   (18.04.2006 в 12:07)
 
   для: pegas   (18.04.2006 в 09:44)
 

Нужно начало интервала - когда он начинается в полночь или в 14 часов текущего дня?

   
 
 автор: pegas   (18.04.2006 в 09:44)   письмо автору
 
   для: cheops (из кафе)   (18.04.2006 в 09:21)
 

Интервал времени задается жестко т.е. 30 мин и 5 мин.

В поле date пользователь время заносит сам, поэтому и нада отслеживать не вышел ли он за рамки допустимого по времени :)

   

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования