PHP为什么只输出1行?

时间:2011-07-26 19:47:23

标签: php mysql

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

    $row;

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

我目前只从这个声明中获得1行我知道他们的事实更多。

5 个答案:

答案 0 :(得分:7)

在while循环的每次迭代中,您将覆盖相同的数组键$responses['name5'],因此最终您在$responses数组中只有一个值。

相反,你可能想要这样的东西追加到数组的末尾:

$responses[] = $response;

答案 1 :(得分:1)

你要覆盖$ response变量,原因是array_push而不是

答案 2 :(得分:1)

$ answers ['name5'] = $ response;

您将获得最后一行,因为您在每个循环步骤中替换数据。 试试这个: $ answers ['name5'] [] = $ response;

答案 3 :(得分:0)

因为您正在将$ response数组重置为循环中的单个数组。您想要添加到数组中。

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

    $row;

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

答案 4 :(得分:0)

DO

$responses[] = array('name5' => $response);