За последние 24 часа нас посетили 16835 программистов и 1310 роботов. Сейчас ищут 1549 программистов ...

Идентификация новых записей

Тема в разделе "PHP и базы данных", создана пользователем Eser, 5 мар 2007.

  1. Eser

    Eser Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    141
    Симпатии:
    0
    Ребят вот такая проблеммка, Нужно приобращение к БД , как то находить новые записи. Т.е что бы скрипт понимал что в БД появилась новая запись и что то делал, если нет то ничего не делал.
    Я решил что можно сравнивать кол-во записей, но туплю и не понимаю как это сделать.


    Как запомнить старое значение, что бы имея старое сравнить с новым и выполнить работу?
    Вот код:
    $sql=mysql_query("select * from zayavki ORDER BY date DESC ;");
    $kolvo=mysql_num_rows($sql);
    if ($kolvo<$kolvonew=mysql_num_rows($sql)) echo ("Новая запись");
    else echo ("Нет новых записей");

    Получается что каждый раз при обращении к БД будет браться одно и тоже значение и сравниваться само с собой и выводится будет всегда "Нет новых записей"
     
  2. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    Это для кого нужно? Для посетителей сайта, для администратора базы, ...?

    Можно добавить в таблицу поле, в которое при обновлении записи будет вноситься ммм... что-либо...
    Скажем, если это для администратора, то можно в это поле ставить просто флаг (1 / 0). Добавлется запись, у нее значение этого поля == 0. Просмотрел его администратор - поменялось на 1.
    Если для посетителей, то в это поле ставить, скажем, дату. И где-то еще хранить дату последнего посещения сайта пользователем.
    ...
    Ну или, все-таки, через кол-во записей,.. можно хранить старое кол-во в файле, можно в базе для него отвести где-нть отдельное поле.
     
  3. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    в файл или в специальную таблицу.
     
  4. Eser

    Eser Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    141
    Симпатии:
    0
    Сделал поле readstat в БД, когда пользователь отправляет сообщение туда вноситься значение 0.
    Програма и правду стала выдавать звуковые сигналы если есть новые сообщения.
    Но появились проблемы с формированием списка. Когда в БД поподает самое первое сообщения с текстом, в списле это сообщение отображается пустым. А все следующие сооющения отображаются нормально.
    Непосмотрите код?

    Вот код:
    $sql=mysql_query("select * from zayavki ORDER BY date DESC ;");
    $sql2=mysql_query ("select * from users;");

    $kolvo=mysql_num_rows($sql);

    $var4=mysql_fetch_array($sql);
    $name2=$var4[name];
    if ($var4[readstat]==0) echo ("<BGSOUND SRC=../sound/newemail.wav LOOP=1>");
    $upstat=mysql_query("update zayavki set readstat=1 where name=$name2;");
    for ($i==0;$i<$kolvo;$i++)
    {
    $var=mysql_fetch_array($sql);
    $name=$var[name];
    $text=$var[text];
    $dt=$var[date];

    $var2=mysql_fetch_array($sql2);
    $filial=$var2[filial];
    $podrazdelenie=$var2[podrazdelenie];
    $dolzchnost=$var2[dolzchnost];
    }
     
  5. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    for ($i=0;$i<$kolvo;$i++)
     
  6. Eser

    Eser Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    141
    Симпатии:
    0
    Неа не помогло если закоментировать $var4=mysql_fetch_array($sql); то все будет Ok, но тогда звук не будет работать
     
  7. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    попробуйте вместо mysql_fetch_array() использовать mysql_fetch_assoc()
    и ключи массивов берите в кавычки
    $var["name"], $var4["readstat"] etc.
     
  8. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Eser
    вам первое предупреждение.
    1. форматируйте свой код с помощью специальных тегов
    2. не злоупотребляйте жирным шрифтом
    3. размещайте темы в соответствующих форумах.
     
  9. Eser

    Eser Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    141
    Симпатии:
    0
    Нет все равно не помогло, первое сообщение так и высвечивается пустым