Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: подсчет записей в БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: пересчитать колличество записей в БД по определенным параметрам
Phm.phx
Отправлено: 23 Сентября, 2013 - 19:42:47
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2013  


Помог: 0 раз(а)




необходима помощь. есть БД с сообщениями пользователей - где поле to - user_id кому сообщение, поле new за прочитанность сообщений (no и yes)
так вот - я хочу наладить счетчик непрочитанных сообщений
PHP:
скопировать код в буфер обмена
  1.  
  2. <a href="usermessages.php"><div class="messag_send">сообщения<?PHP $sql=("SELECT ... FROM usermessages WHERE 'to' = '$user_id'  AND 'new' = 'yes'";)
  3.  ?></div></a>
и никак не могу понять какую функцию использовать. и как можно реализовать автоматическое обновление счетчика, так понимаю - посредством ajax и javascript?
заранее благодарю за помощь
 
 Top
VestCoastman
Отправлено: 23 Сентября, 2013 - 22:54:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




COUNT() подсчитывает кол-во результатов, пример
PHP:
скопировать код в буфер обмена
  1. $sql="SELECT COUNT(*) FROM usermessages WHERE `to` = '$user_id'  AND `new` = 'yes'";
  2. $query = mysql_query($sql);
  3. $result = mysql_fetch_array($query);
  4.  
  5. echo 'У пользователя '.$result[0].' непрочитанных сообщений';


Также можно воспользоваться функцией mysql_num_rows(), но она работает медленнее и это не совсем то, что нужно, т.к. делается запрос выбранных полей, пример работы ниже
PHP:
скопировать код в буфер обмена
  1. $sql="SELECT id FROM usermessages WHERE to='$user_id'  AND new = 'yes'";
  2. $result = mysql_num_rows(mysql_query($sql));
  3.  
  4. echo 'У пользователя '.$result.' непрочитанных сообщений';


Обновлять счетчик можно и через ajax и через php. пользователь заходит в сообщение и если оно не прочитано, то делается обновление. Например:
PHP:
скопировать код в буфер обмена
  1.  
  2. $id = intval($_GET['id']);
  3. $query = mysql_query("UPDATE `usermessages` SET new='no' WHERE id='$id' AND new!='no'");
  4. if(!$query) exit(" ERROR UPDATE MESSAGE");
  5.  
 
 Top
Phm.phx
Отправлено: 23 Сентября, 2013 - 23:17:09
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2013  


Помог: 0 раз(а)




огромное спасибо!!!! а еще можете подсказать, как правильнее elseif построить, что бы ноль(при отсутствии новых сообщений) убрать?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB