Как узнать что появилась новая запись в базе mysql и прочитать именно её

karen12

Постоялец
Регистрация
26 Фев 2012
Сообщения
108
Реакции
4
Как узнать что появилась новая запись в базе mysql и прочитать именно её? То есть выделить новые записи красным цветом.И после того как была бы нажата на выводимый новый запис оно поменял бы цвет от красного на обычный.
 
ВО первых надо логировать айдишники или даты старых записей. Вы не указали в каком виде хранятся у вас данные. Это первое от чего надо отталкиваться. Все остальное - дело техники. К примеру - берем новости, идентификатором может быть дата последнего посещения сайта пользователем - в куках например. И сравнивая эту дату с датами новостей - выводить ему только новые новости. Изменение заголовка тоже надо делать с логированием через куки
 
Самый простой вариант - создаем в таблице еще 1 колонку тип boolean. (да/нет) с названием "новая новость". Значение по умолчанию - Да.
При вставке новости в колонку автоматом запишется Да. Т.е. эта новость будет новой. Далее при просмотре новости значение колонки меняется на Нет, т.е. новость устаревает.
Нужно будет сделать 1 дополнительный mysql запрос, который состояние новости будет менять на Нет при просмотре на нужной странице сайта либо делать триггер, который будет срабатывать на команду SELECT ... FROM...
 
Самый простой вариант - создаем в таблице еще 1 колонку тип boolean. (да/нет) с названием "новая новость". Значение по умолчанию - Да.
При вставке новости в колонку автоматом запишется Да. Т.е. эта новость будет новой. Далее при просмотре новости значение колонки меняется на Нет, т.е. новость устаревает.
Нужно будет сделать 1 дополнительный mysql запрос, который состояние новости будет менять на Нет при просмотре на нужной странице сайта либо делать триггер, который будет срабатывать на команду SELECT ... FROM...
Ваш вариант мне по душе. Пожалуйста опишите как при просмотре материала изменить значение поля да/нет, то есть отправить перекрестный запрос на update?
 
PHP:
UPDATE nazvanie_tablici SET novay_novost='0' WHERE id_novosti='nomer_novosti'
nazvanie_tablici - название таблицы в БД
novay_novost - название колонки в таблице, отвечающей за новая новость или старая.
id_novosti - название колонки, имеющей уникальный идентификатор. Обычно называется id
nomer_novosti - номер новости в колонке id_novosti , имеющей какое-то конкретное значения, например 555 , 10324 и т.д.
 
PHP:
UPDATE nazvanie_tablici SET novay_novost='0' WHERE id_novosti='nomer_novosti'
nazvanie_tablici - название таблицы в БД
novay_novost - название колонки в таблице, отвечающей за новая новость или старая.
id_novosti - название колонки, имеющей уникальный идентификатор. Обычно называется id
nomer_novosti - номер новости в колонке id_novosti , имеющей какое-то конкретное значения, например 555 , 10324 и т.д.
Да, это код для обновления, а как быть с тем, чтобы нажав на ссылку для вывода данных, колонка novay_novost одновременно обновлялся
Вывожу данные вот так
PHP:
$res = mysql_query("SELECT * FROM `reception`  WHERE  `doctor_userid`= '".$_SESSION['id']."'  ORDER BY  `id` DESC LIMIT $start, $num");

   while($row = mysql_fetch_assoc($res)) {

echo'
<a  href="doctor/reception_view.php?id='.$row["id"].'">  '.$row["text"].'</a>

';
          


}
 
Хорошо. Ситуация - я захожу на сайт, выполняется запрос, и новость становиться старой для всех остальных )) должна быть идентификация пользователей же. А как идентифицировать незарегистрированных юзеров без куков?

а как быть с тем, чтобы нажав на ссылку для вывода данных, колонка novay_novost одновременно обновлялся
просто выполнение ставьте на просмотр полного текста новости
 
а как быть с тем, чтобы нажав на ссылку для вывода данных, колонка novay_novost одновременно обновлялся
Karen12 дальше пошли вопросы НЕобщего характера. Для ответа на них нужно гораздо больше данных. Структуры таблиц, связи между таблицами, по какому уникальному параметру выбирать новость и т.д. и т.п.
 
Карен, а можно узнать вообще цель работы? Это для личного пользования только для вас, или для всех посетителей сайта?

а как быть с тем, чтобы нажав на ссылку для вывода данных, колонка novay_novost одновременно обновлялся

PHP:
$res = mysql_query("UPDATE `reception` SET  novay_novost='0' WHERE  id= '".$_GET['id']."' ");
 
Как вариант - каждому юзеру в куки ставить ид прочитанных новостей и искать потом в этом массиве. Но это долго.
Гораздо проще записывать (куки, или в базу по ip) дату последнего визита и все новости, которые младше этой даты, помечать как старые.
 
Назад
Сверху