2013-06-05 2 views
0

Я использую запрос Ajax для анализа данных в jquery. Только проблема в том, что мой запрос показывает только один результат! Мой запрос имеет более одного вывода и показывает только один.результат массива из запроса показывает только один результат?

может кто-нибудь помочь мне?

$query = "SELECT u.id, c.id, c.chatbox_id, c.subject FROM tbl_users u, tbl_chatbox c WHERE '".$user_id."' = c.id"; 
$rows = array(); 

if ($result = $mysqli->query($query)) { 
    while ($row = mysqli_fetch_assoc($result)) { 
     $id = $row['id']; 
     $subject = $row['subject']; 
     $chatbox_id = $row['chatbox_id']; 
    } 
    $array = array(
     "result" => "1", 
     "id" => $id, 
     "subject" => $subject, 
     "chatbox_id" => $chatbox_id 
     ); 

    echo json_encode($array); 
} 

ответ

1

Вы можете попробовать это также.

$query = "SELECT u.id, c.id, c.chatbox_id, c.subject FROM tbl_users u, tbl_chatbox c WHERE '".$user_id."' = c.id"; 
$rows = array(); 

if ($result = $mysqli->query($query)) { 
$i=0; 
while ($row = $result->fetch_assoc()) { 
$id = $row['id']; 
$subject = $row['subject']; 
$chatbox_id = $row['chatbox_id']; 

$array[$i] = array(
"result" => "1", 
"id" => $id, 
"subject" => $subject, 
"chatbox_id" => $chatbox_id 
); 
$i++; 

}

эхо json_encode ($ массив); }

+0

не работает истребитель .. извините! Спасибо за помощь – vdhmartijn

0

Прежде всего, это изменить:

while ($row = mysqli_fetch_assoc($result)) { 

к этому:

while ($row = $result->fetch_assoc()) { 

Вы смешивались MySQLi-й объектно-ориентированный и процедурные стили, которые могут вызвать проблемы. У fetch_assoc documentation есть дополнительная информация.

Тогда просто поставить $array назначение внутри в while цикл:

while ($row = $result->fetch_assoc()) { 
    $array[] = array(
     "result" => "1", 
     "id" => $row['id'], 
     "subject" => $row['subject'], 
     "chatbox_id" => $row['chatbox_id'] 
    ); 
} 

После этого while отделки петель, $array будет массив ассоциативных массивов. Вы можете использовать его как это:

foreach($array as $db_row) { 
    echo "This row's id is " . $db_row['id'] . '<br />'; 
    echo "This row's subject is " . $db_row['subject'] . '<br />'; 
} 
+1

Это явно не проблема. – bwoebi

+0

обновил мой ответ – sgroves

+0

Да. И смешивание оо и процедурный стиль не вызовут проблем, только смешивая mysql и mysqli. – bwoebi

2

Try ниже

$query = "SELECT u.id, c.id, c.chatbox_id, c.subject FROM tbl_users u, tbl_chatbox c WHERE '".$user_id."' = c.id"; 
$rows = array(); 

if ($result = $mysqli->query($query)) { 
    while ($row = $result->fetch_assoc()) { 
    $id = $row['id']; 
    $subject = $row['subject']; 
    $chatbox_id = $row['chatbox_id']; 

    $array[] = array(
    "result" => "1", 
    "id" => $id, 
    "subject" => $subject, 
    "chatbox_id" => $chatbox_id 
    ); 
    } 

    echo json_encode($array); 
} 
+0

Как только мой массив $ [] попадает в цикл while, код больше не работает. – vdhmartijn

+0

Если я изменяю $ array = array (.. to $ array [] = array (.. it failed @lepanto – vdhmartijn

+0

У вас есть сообщение об ошибке? – Lepanto

Смежные вопросы