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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: INTERVAL '20' MINUTE
 
 автор: Maxys   (14.11.2007 в 18:55)   письмо автору
 
 


$query = "DELETE FROM session_mus WHERE putdate < NOW() - INTERVAL '20' MINUTE";
if(!$query)
{
  echo "Ошибка<br>";
  echo mysql_error();
  exit();

mysql_query($query);

вот такой запрос я делаю к БД, тоесть через 20 минут это должно сработать.. точнее удалить из базы данных строку. Но почему то удалять не хочет, проверку на ошибку я поставил, но ошибки не выдаёт. Тоесть всё нормально, а не удаляет, подскажите..

   
 
 автор: Maxys   (14.11.2007 в 19:29)   письмо автору
 
   для: Maxys   (14.11.2007 в 18:55)
 

кто нибудь.. хелп :P

   
 
 автор: ddhvvn   (14.11.2007 в 19:47)   письмо автору
 
   для: Maxys   (14.11.2007 в 18:55)
 

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

Да уж, супер...

Вот так сделайте и смотрите ошибки :-D


$query_s = "DELETE FROM session_mus WHERE putdate < NOW() - INTERVAL '20' MINUTE"; 
$query = mysql_query($query_s);
if(!$query) 

  echo "Ошибка<br>"; 
  echo mysql_error(); 
  exit(); 
}  

   
 
 автор: Maxys   (14.11.2007 в 20:52)   письмо автору
 
   для: ddhvvn   (14.11.2007 в 19:47)
 

делаю, получаю пустоту..

   
 
 автор: cheops   (15.11.2007 в 02:21)   письмо автору
 
   для: Maxys   (14.11.2007 в 20:52)
 

Порядок выполнения операторов такой же как у ddhvvn?

   
 
 автор: Thrasher   (15.11.2007 в 09:46)   письмо автору
 
   для: Maxys   (14.11.2007 в 18:55)
 

У числа 20 кавычки ставить не надо.
И еще: какой формат поля putdate?

   
 
 автор: Maxys   (15.11.2007 в 18:41)   письмо автору
 
   для: Thrasher   (15.11.2007 в 09:46)
 

Поле-Тип-Ноль-По умолчанию
putdate-datetime-Нет-0000-00-00 00:00:00

   
 
 автор: Maxys   (15.11.2007 в 18:46)   письмо автору
 
   для: Maxys   (15.11.2007 в 18:41)
 

вот весь код.... не пойму, кавычки убрал не работает

session_start();
$id_session = session_id();
include "config.php";
$query = "SELECT * FROM session_mus WHERE id_session = '$id_session'";
$ses = mysql_query($query);
if(!$ses) exit("Ошибка при подсоединения к базе");

if(mysql_num_rows($ses)>0)
    {
        $query = "UPDATE session_mus SET putdate = NOW()
                  WHERE id_session = '$id_session'";
        mysql_query($query);
    }
else
    {
        $query = "INSERT INTO session_mus VALUES('$id_session', NOW(), '$_SESSION[user]')";
        if(!mysql_query($query))
            {
                echo $query."<br>";
                echo "<p>Ошибка при добавлении пользователя</p>";
                exit();
            }
    }
$query = "DELETE FROM session_mus WHERE putdate < NOW() - INTERVAL 1 MINUTE";
mysql_query($query);

   
 
 автор: morkovkin   (15.11.2007 в 18:47)   письмо автору
 
   для: Maxys   (15.11.2007 в 18:41)
 

А Вы понимаете, чтобы это работало, нужно как минимум обновлять эту страницу с запросом?
Или у Вас и после ожидания 20ти минут и запуска данного кода, всё равно не удаляется ничего?

   
 
 автор: Maxys   (16.11.2007 в 06:52)   письмо автору
 
   для: morkovkin   (15.11.2007 в 18:47)
 

да нужно обновлять эту страницу.
после ожидания запись всё равно остаётся в базе данных!

   
 
 автор: Thrasher   (16.11.2007 в 09:47)   письмо автору
 
   для: Maxys   (16.11.2007 в 06:52)
 

Не понял, вы что, сначала обновляете страницу, а потом ждете 1 минуту и смотрите, удалилась ли запись? Без нового обновления страницы?

   
 
 автор: Maxys   (18.11.2007 в 18:34)   письмо автору
 
   для: Thrasher   (16.11.2007 в 09:47)
 

да, я понимаю что код не сработает если не загрузить страницу ещё раз, но я думал что эта функция INTERVAL 1 MINUTE как то в sql автоматом удалит данные =( так в учебнике было написано =) я ведь ещё учусь. Теперь понятно что так не делается, можете подсказать как же мне тогда удалять запись из БД?

   
 
 автор: Thrasher   (19.11.2007 в 10:22)   письмо автору
 
   для: Maxys   (18.11.2007 в 18:34)
 

Так и удалять этим запросом.
При работе с этой таблицей сначала ставите запрос на удаление старых записей, а уже потом обрабатываете эту таблицу как вам нужно (в смысле, добавляете новые или изменяете записи).

   
 
 автор: Maxys   (19.11.2007 в 20:11)   письмо автору
 
   для: Thrasher   (19.11.2007 в 10:22)
 

хорошо, спасибо.

   
Rambler's Top100
вверх

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