为什么我的php应用程序代码只显示数据库的一个结果?

时间:2018-01-20 13:01:17

标签: php mysql

我已多次编写这些代码并且它总是运行良好但现在我在不同的系统上只显示了1个结果。

查询很简单

$HOST = 'localhost';
$USERNAME = 'root';
$PASSWORD = '';
$DATABASE = 'db_test';


$con = mysqli_connect($HOST,$USERNAME,$PASSWORD,$DATABASE);

$sql = "SELECT * FROM test ";

$res = mysqli_query($con,$sql);

$res_array = mysqli_fetch_assoc($res);

echo json_encode($res_array);

mysqli_free_result($res);

mysqli_close($con);

我想知道在运行应用程序之前是否需要更改任何设置

4 个答案:

答案 0 :(得分:1)

说真的,它遍布the docs

  

mysqli_fetch_assoc 返回与获取的行对应的关联数组,如果没有其他行,则返回NULL。

注意"获取的行"一部分。

你需要把你的聚会放在一个循环中

$rows = [];

/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
    $rows[] = $row
}

json_encode($rows);

答案 1 :(得分:0)

此行mth-date value 01-01 13 01-02 14 01-03 13 ............ ............ 12-29 18 12-30 16 12-31 17 只会获取一条记录。

你需要遍历结果集对象并从中获取所有数据。所以使用$res_array = mysqli_fetch_assoc($res);循环如下

while()

参考: -

mysqli_fetch_assoc()

答案 2 :(得分:-1)

替换此行

$res_array = mysqli_fetch_assoc($res);

while ($row = mysqli_fetch_assoc($res)) {
    $res_array[] = $row;
}

答案 3 :(得分:-1)

我认为你应该像这样做一个循环

$HOST = 'localhost';
$USERNAME = 'root';
$PASSWORD = '';
$DATABASE = 'db_test';


$con = mysqli_connect($HOST,$USERNAME,$PASSWORD,$DATABASE);

$sql = "SELECT * FROM test ";

$res = mysqli_query($con,$sql);
while ($res_array= mysqli_fetch_array($res)) {

echo json_encode($res_array);
}
mysqli_free_result($res);

mysqli_close($con);