如何使用php以json中的数组形式返回mysql-select
how to return a mysql select as an array of arrays in json using php
我正在尝试将mysql请求(select)导出到数组的json数组,这样javascript中的JSON.parse
将返回数组数组,而不是对象数组,因为在回答之前提出的类似问题后会发生什么。
要将mysql请求转换为数组的json数组,应该更改什么?
json_encode
要返回数组的JSON数组,需要一个数字索引数组。
这可以通过以下通用函数获得:
function SqlSelectToJsonTable($result,$withNames=false){
// result a mysqli::query object,
// withNames: boolean, should the column names be returned as first row
$return_arr = array();
echo $result->num_rows;
if ($result->num_rows > 0){
if($withNames == true){
$return_arr[0] = array();
$fields = $result->fetch_fields();
foreach ($fields as $field){
echo "column: ".$field->name." ";
array_push($return_arr[0],$field->name);
}
}
while($row = $result->fetch_assoc()) {
$return_arr[]= array_values($row);
}
} else {
echo "0 results";
}
return json_encode($return_arr);
}
如下所示:
<?php
$servername = "localhost";
$username = "user";
$password = "password";
$dbname = "test";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, title FROM Posts";
$result = $conn->query($sql);
$jsonTable = SqlSelectToJsonTable($result);
echo '<br/>'.$jsonTable;
echo "<script type='"text/javascript'">
var jsTable = JSON.parse('".$jsonTable."');
</script>";
$conn->close();
?>
其中jsTable实际上是一个数组数组。注意选项withNames
允许将列名添加为第一行,如果您试图将此数组传递给javascript以进行google可视化,请使用full。
相关文章:
- 对象数组返回自最近日期以来的最高总体值
- 从多维数组返回嵌套数组
- 为什么当我点击<a>使用纯javascript;这个“;返回url,数组返回“url”;未定义”;
- 带多维数组返回字符串的json_encode;阵列”;而不是数据
- 如何将 AJAX 响应作为 JavaScript 数组返回
- 我正在尝试在 JS 中制作这个随机名称生成器.数组返回未定义
- .push() 多个对象进入 JavaScript 数组返回 'undefined'
- 如何按属性从可观察数组返回项
- 通过jquery发送的关联php数组返回[对象对象]
- 从 Javascript 中的对象数组返回单个属性的数组
- 循环遍历对象数组返回“未定义”
- 拼接数组返回空的序列
- Javascript 多维数组返回第一个值,然后失败
- Json 数组返回空值
- 从下划线.js中的数组返回一系列值
- for 语句不从数组返回值
- MongoDB从数组返回特定字段
- 试图将数组返回到表中的列表中
- Javascript中的二维数组返回未定义的数组
- 将函数数组作为布尔值数组返回