3
I picked up this example on the blog http://rberaldo.com.br/server-push-long-polling-php-ios/
Server.php
<?php
header('Content-type: application/json');
require 'pdo.php';
set_time_limit(0);
while ( true )
{
    $requestedTimestamp = isset( $_GET['timestamp'] ) ? (int)$_GET['timestamp'] : 0;
    $stmt = $pdo->prepare( "SELECT * FROM publication WHERE publication_time = :requestedTimestamp" );
    $stmt->bindParam( ':requestedTimestamp', $requestedTimestamp );
    $stmt->execute();
    if ($stmt->rowCount() > 0)
    {
    while ($rowpublication = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $publication_id  = $rowpublication['publication_id'];
    }
        $json = json_encode( $publication_id );
        echo $json;
        break;
    }
    else
    {
        sleep( 2 );
        continue;
    }
}
?>
Client.js
function getContent( timestamp )
{
    var queryString = { 'timestamp' : timestamp };
    $.get ( '/php-long-polling-master/server/server.php' , queryString , function ( data )
    {
        var obj = jQuery.parseJSON( data );
        $( '#response' ).html( obj.content );
        // reconecta ao receber uma resposta do servidor
        getContent( obj.timestamp );
    });
}
$( document ).ready ( function ()
{
    getContent();
});
HE DOESN’T DO THE TIMESTAMP ISSET, WHERE THE PROBLEM IS?
Here is the problem,if ($stmt->rowCount() > 0), if the query result is not found, then it will continue the loop without the timestamp
– Kevin mtk
Then you have to change the logic of the front-end if you don’t get an answer
– Wallace Maxters