Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.10.2014, 02:23
Новичок на форуме
Отправить личное сообщение для artyrai Посмотреть профиль Найти все сообщения от artyrai
 
Регистрация: 01.10.2014
Сообщений: 7

сканирования бд
Здравствуйте, есть таблица в бд с информацией о клиенте. Эта таблица выводиться допустим в get_table.php
сделал примерно чтоб выводилось сообщение о новой строке
get_mess.php
<?php

$name = $_POST['name']; //Переменная для запроса
$query = mysqli_query($con, "SELECT * FROM users_table");
if(mysql_num_rows($query) > 0){
  echo "new_mess";
}
?>

и допустим в странице где нужно уведомлять о новой строке
$(document).ready(function(){
  setInterval(function(){
    $.post('new_mess.php',{name:'name'},function(data){
      if(data == 'new_mess'){
        alert('У Вас новое сообщение');
      }
    });
  },10000);
});

подскажите что я делаю не так? или чего либо не хватает гуглил толкового не нашел кроме данного примера, пожалуйста помогите; проект горит
Ответить с цитированием
  #2 (permalink)  
Старый 19.10.2014, 09:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

С аяксом тут все нормально.
А вот с PHP-скриптом явно что-то не так.
Во-первых, где там используется $name?
Во-вторых, ты запрос делаешь через mysqli, а строки считаешь через mysql - помоему это не будет работать. Пользуйся одним расширением - либо mysqli, либо mysql. И не видно где у тебя там $con создается.


Почему у тебя запрос идет к new_mess.php, а не get_mess.php?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 19.10.2014, 10:57
Новичок на форуме
Отправить личное сообщение для artyrai Посмотреть профиль Найти все сообщения от artyrai
 
Регистрация: 01.10.2014
Сообщений: 7

Сообщение от danik.js Посмотреть сообщение
С аяксом тут все нормально.
А вот с PHP-скриптом явно что-то не так.
Во-первых, где там используется $name?
Во-вторых, ты запрос делаешь через mysqli, а строки считаешь через mysql - помоему это не будет работать. Пользуйся одним расширением - либо mysqli, либо mysql. И не видно где у тебя там $con создается.


Почему у тебя запрос идет к new_mess.php, а не get_mess.php?
Здравствуйте насчет new_mess ошибочка так и есть в запрос идет к get_mess,
$con это $con = mysqli_connect($url, $user, $password, $DB);
можете подробнее о вашем либо либо?
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2014, 13:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

http://php.net/manual/ru/function.mysqli-connect.php

http://php.net/manual/ru/function.mysql-connect.php

Разницу видишь? Эти функции используют разные PHP-расширения.
Ты коннектишься через mysqli, а mysql_num_rows - это из mysql, а не mysqli.

Попробуй $query->num_rows . Либо делай запрос SELECT COUNT(*)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 19.10.2014, 21:02
Новичок на форуме
Отправить личное сообщение для artyrai Посмотреть профиль Найти все сообщения от artyrai
 
Регистрация: 01.10.2014
Сообщений: 7

Сообщение от danik.js Посмотреть сообщение
http://php.net/manual/ru/function.mysqli-connect.php

http://php.net/manual/ru/function.mysql-connect.php

Разницу видишь? Эти функции используют разные PHP-расширения.
Ты коннектишься через mysqli, а mysql_num_rows - это из mysql, а не mysqli.

Попробуй $query->num_rows . Либо делай запрос SELECT COUNT(*)
Разницу увидел! Спасибо за замечание! а вот я еще у вас хотел спросить

если делаю так
<?php
$con = mysql_connect("localhost", "root", "root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("insurance",$con);
$name = $_POST['name'];
$sql = mysql_query("SELECT * FROM users_table");

if(mysql_num_rows($sql) > 0){
  echo "new_mess";
}
mysql_close($con);
?>

и
$(document).ready(function(){
  setInterval(function(){
    $.post('new_mess.php',{name:'name'},function(data){
      if(data == 'new_mess'){
        alert('У Вас новое сообщение');
      }
    });
  },5000);
});
обновляет но не прекращает уведомлять
если так посмотреть то все работает правильно потому что на самом деле строки в таблице больше 0.
Как лучше реализовать подскажите если не трудно
Ответить с цитированием
  #6 (permalink)  
Старый 19.10.2014, 21:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Добавь в таблицу поле - флаг, отмечающий, было ли уведомление об этом сообщении или нет.
Допустим notified (по умолчанию 0).
SELECT * FROM .. WHERE notified = 0

Сразу после запроса делай еще один запрос, UPDATE, в котором выставляй флаг notified в 1
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 19.10.2014, 23:30
Новичок на форуме
Отправить личное сообщение для artyrai Посмотреть профиль Найти все сообщения от artyrai
 
Регистрация: 01.10.2014
Сообщений: 7

Сообщение от danik.js Посмотреть сообщение
Добавь в таблицу поле - флаг, отмечающий, было ли уведомление об этом сообщении или нет.
Допустим notified (по умолчанию 0).
SELECT * FROM .. WHERE notified = 0

Сразу после запроса делай еще один запрос, UPDATE, в котором выставляй флаг notified в 1
Благодарю добрый человек! ваши советы отлично помогли
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск