2013-03-11 3 views
0
$res = mysql_query("SELECT * FROM `basket` WHERE `account_id` = '$_SESSION[ID]'"); 
while($row = mysql_fetch_assoc($res)) { 
     $search = $row['number']; 
     echo $search; 
} 

То, что я пытаюсь сделать, это использовать вызов Ajax для этого PHP файла, а затем «вторит» данные я хочу, чтобы разобрать и место внутри DIV, вот вызов Ajaxвозвращение ответа Еогеаспа в AJAX

$(document).ready(function() { 
    var data = "func=basket";    
    $.ajax({ 
     url: "functions/ajax.php", 
     data: data, 
     type: "GET", 
     success: function(data, textStatus, jqXHR){ 
      $("#response").html(data); 
     }, 
     error: function (jqXHR, textStatus, errorThrown){ 
      console.log('Error ' + jqXHR); 
     } 
    }); 
}); 

Но проблема у меня в том, что это не разбор данных, пока КАЖДЫЙ while($row etc.. не обрабатываются, я хочу вернуть эхо строки 1 на 1, как бы я идти об этом, что

+1

Возможный дубликат [jquery ajax, читайте поток постепенно?] (Http://stackoverflow.com/questions/7740646/jquery-ajax-read-the-stream-incrementally) –

+0

Что-то вроде 'yield' будет отлично здесь;) - вы можете использовать [flush] (http://php.net/flush). Я отвечу. –

+0

По какой причине вы используете 'mysql_query' здесь? – tadman

ответ

1

Как насчет того, другой подход ...

while($row = mysql_fetch_assoc($res)) { 
    $search[] = $row['number']; 

}

echo json_encode($search); 

В функции обратного вызова успеха вы просто итерацию через json_encoded массив элементов корзины с помощью JQuery каждый()

loop through json array jquery

http://api.jquery.com/jQuery.each/

1

функции вы Здесь поиск называется flush, это позволит вам очистить wr ite буферов вашего веб-сервера (Apache, Nginx и т. д.).

$pdo = new PDO('mysql:dbname=yourdb;host=127.0.0.1', 'root', ''); 
$sth = $pdo->prepare('SELECT * FROM `basket` WHERE `account_id`=?'); 
$sth->bindParam(1, $_SESSION['id'], PDO::PARAM_INT); 
$sth->execute(); 

while($row = $sth->fetch(PDO::FETCH_ASSOC)) 
{ 
    echo $row['number']; 
    flush(); 
} 

Вы также используете устаревшие функции (mysql_*) следует рассмотреть вопрос о замене их с PDO или MySQLi (я сделал это для вас в моем посте).

Примечание: некоторым браузерам требуется определенное количество данных, прежде чем они отобразят содержимое.

+0

Я обновил сообщение, чтобы использовать PDO. –

+0

Большое спасибо за сообщение, хотя PDO не мой способ использовать его, я придерживаюсь mySQLi;), я только разместил в mySQL для простого просмотра –