2011-07-26 12 views
2
$responses = array(); 
while ($row = mysql_fetch_array($result)) { 
    $response = array(
    'name' => $row['name'] 
    ); 

    $row; 

    $responses['name5'] = $response; 
} 
echo json_encode($responses); 

私は現在、このステートメントから1行しか取得していません。PHPはなぜこれは1行だけを出力しますか?

+0

をやっているのですか? –

答えて

7

whileループの各繰り返しで、同じ配列キー$responses['name5']を上書きしているため、最後に$responses配列には1つの値しかありません。

代わりに、あなたはこのようなものは、配列の末尾に追加したい場合があります:

$responses[] = $response; 
0

あなたは、ループ内の単一のアレイに$応答配列をリセットしているため。あなたは配列に追加したい。

$responses = array(); 
while ($row = mysql_fetch_array($result)) { 
    array_push($response, array(
    'name' => $row['name'] 
    )); 

    $row; 

    $responses['name5'] = $response; 
} 
echo json_encode($responses); 
1

あなたはなぜ、array_push代わり

1

$応答[ 'name5'] = $応答の$応答変数を上書きしています。

各サイクルステップでデータを置き換えるため、最終行のみが表示されます。 これを試してください: $ respond ['name5'] [] = $ response;

0

は8行目は何を

$responses[] = array('name5' => $response); 
関連する問題