mysqli_query()的结果为最后一个索引返回null


Results of mysqli_query() returning null for last index

我是这样查询的,在下面的代码段中,第一个循环取列名,第二个循环推送另一个数组中的值(我知道这可能不是一种最佳方式,但这正是我想到的,正在解决我的任务)。问题是

$results = '';
$dataArray = array();
$columns_array = array();
$dataArray = array();
$results = mysqli_query($mysqli, ("SELECT
  DISTINCT states_drg.`Provider State`,
  SUM(states_drg.`Total Discharges`) AS discharges
 FROM states_drg
 GROUP BY states_drg.`Provider State`")
);
$columns_names = mysqli_fetch_assoc($results);
foreach ($columns_names as $key => $value) {
    array_push($columns_array, $key);
}
array_push($dataArray, $columns_array);
foreach ($results as $result) {
    array_push($dataArray, mysqli_fetch_row($results));
}
 print_r($dataArray);
echo json_encode($dataArray, JSON_NUMERIC_CHECK);
exit;
);

查询在查询浏览器中运行得非常好,但当我转储print_r($dataArray)时;我只得到26条记录,因为如果我在查询浏览器中运行查询,我总共有大约51条记录。

您完全错误地使用了mysqli。

foreach($results as $result)

NOT如何从查询结果中获取数据。你应该有

while($row = mysqli_fetch_assoc($result)) {
   $dataArray[] = $row;
}

更不用说粘贴代码中的多个语法错误了。。。