• Как сделать выборку результатов из таблицы базы данных согласно условию?

    Если $followers_arr массив, то:

    $followers_str = implode(',', $followers_arr);
    mysql_query("SELECT * FROM `news` WHERE `IDN` > '".$last_id."' AND `E_mail` IN (".$followers_str.") ORDER BY `IDN` ASC");


    Если $followers_arr строка с емейлами, разделенными запятыми, то:

    mysql_query("SELECT * FROM `news` WHERE `IDN` > '".$last_id."' AND `E_mail` IN (".$followers_arr.") ORDER BY `IDN` ASC");
    Ответ написан
    Комментировать
  • Как сделать выборку результатов из таблицы базы данных согласно условию?

    ScorpLeX
    @ScorpLeX
    Во первых у вас перепутан порядок параметров, FIND_IN_SET( В ЧЕМ ИЩЕМ, ЧТО ИЩЕМ )
    Во вторых вы похоже передаете массив без преобразования в строку, используйте implode(',', $followers_arr) например.
    Ответ написан
    2 комментария
  • В чем ошибка при реализации Comet (Long - Polling) метода?

    AlexPTS
    @AlexPTS
    Full stack веб разработчик
    По поводу механики на клиенте Serkaz все верно написал.

    Если опустить время на запросы, то через setInterval() можно равномерно эту функцию вызывать.

    А проблема была в
    complete:getmess

    На событие comolete запроса вы следом же снова эту функцию вызывали. Отсюда и интервал 0,1 сек был
    Ответ написан
    Комментировать
  • В чем ошибка при реализации Comet (Long - Polling) метода?

    Не понятно, что Вам надо.
    1. Ждать 100000мс ответ сервера и если он не ответил, то заново отправлять запрос
    или
    2. Отправлять запрос с задержкой в 100000мс после получения предыдущего ответа?

    В первом случае js работает нормально - проверил.

    Возможно php не правильно отрабатывает и отдает Вам ответ в течении 0.1c. Выведите логирование, повыводите echo с разных условий.

    Во втором, надо немного переписать код:
    function getmess(){
    	$.ajax({
    		url:"get_mess.php",
    		data:{"id":id},
    		type:"GET",
    		success:function(result){
    			$("#response").html(result);
    			setTimeout('getmess',100000);
    		}
    	});
    }
    Ответ написан
    Комментировать
  • Comet(Long polling) - php + jquery?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    js создает соединение (в опциях для ajax запроса выставляется таймаут побольше)
    php принимает его и смотри что можно послать. И ждет... ждет пока не появятся данные которые можно послать.
    Как только данные появляются (скажем скрипт с какой-то задержкой читает данные из базы или из очереди) то он отправляет эти данные и обрывает соединение.
    js скрипт принимает данные, отдает данные на обработку и создает новое соединение.... и так до бесконечности.

    По сути просто вместо того что бы опрашивать сервер раз в секунду, создается соединение, живущее только до получения данных. После получения данных соединение закрывается. После закрытия соединения (не важно пришли данные или произошла ошибка/разрыв по таймаут) так же создается новое. На практике таймаут выставляют секунд в 20-30 что бы избежать возможных проблем.
    Ответ написан
    5 комментариев