我正在这样查询,在第一个循环下面的片段中取名列,第二个循环在另一个数组中推送值(我知道这可能不是一种最佳方式,但这是我脑海里想到的并且正在解决我的任务)。问题是
$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条记录。
答案 0 :(得分:4)
你使用mysqli是完全错误的。
foreach($results as $result)
NOT 如何从查询结果中获取数据。你应该
while($row = mysqli_fetch_assoc($result)) {
$dataArray[] = $row;
}
更不用说粘贴代码中的多个语法错误......