我有一个包含5列和多行的数据库。我想获取前3行并将它们作为数组回显。到目前为止,我只能获得第一行(我是PHP和mysql的新手)。这是我到目前为止的PHP:
//==== FETCH DATA
$result = mysql_query("SELECT * FROM $tableName");
$array = mysql_fetch_row($result);
//==== ECHO AS JSON
echo json_encode($array);
非常感谢帮助。
答案 0 :(得分:12)
您需要遍历结果。 mysql_fetch_row
一次获得一个。
http://php.net/manual/en/function.mysql-fetch-row.php
代码最终会像:
$jsonData = array();
while ($array = mysql_fetch_row($result)) {
$jsonData[] = $array;
}
echo json_encode($jsonData);
//json_encode()
请注意
在PHP 5.5中不推荐使用mysql扩展,如您应该使用mysqli或PDO的注释中所述。您只需在上面的代码中替换mysqli_fetch_row
即可。
http://www.php.net/manual/en/mysqli-result.fetch-row.php
答案 1 :(得分:2)
根据PHP Documentation mysql_fetch_row
(除了它已被弃用,你应该使用mysqli或PDO)
返回与获取的行对应的数值数组,并将内部数据指针向前移动。
所以你需要一个while循环来获取所有行:
$rows = array();
while ($row = mysql_fetch_row($result)) {
$rows[] = $row;
}
echo json_encode($rows);
我告诉你如何只获取3行:)
答案 2 :(得分:2)
我在使用PHP 5.5.7查询ODBC数据库连接时这样做,结果将采用JSON格式:
$conn = odbc_connect($odbc_name, 'user', 'pass');
$result = odbc_exec($conn, $sql_query);
获取允许编辑字段的结果:
while( $row = odbc_fetch_array($result) ) {
$json['field_1'] = $row['field_1'];
$json['field_2'] = $row['field_2'];
$json['field_3'] = $row['field_1'] + $row['field_2'];
array_push($response, $json);
}
或者,如果我不想改变任何东西,我可以像这样简化:
while ($array = odbc_fetch_array($result)) { $response[] = $array; }
如果我想以JSON格式返回结果怎么办?,简单:
echo json_encode($response, true);
您可以更改mysqli_fetch_array的odbc_fetch_array以查询MySql数据库。
答案 3 :(得分:0)
你需要将它放在某种循环中,mysql_fetch_row一次返回一个结果。
参见示例: http://www.php.net/manual/en/mysqli-result.fetch-row.php#example-1794
答案 4 :(得分:-1)
$ result = mysql_query(“SELECT * FROM $ tableName ORDER BY id LIMIT 3”);
$ json = array(); while($ array = mysql_fetch_row($ result)){
$ json [] = $ array; }
echo json_encode($ json);