试图将 MySQL 查询的结果放入 JavaScript 数组
Posted
技术标签:
【中文标题】试图将 MySQL 查询的结果放入 JavaScript 数组【英文标题】:Trying to get results of a MySQL query into a JavaScript array 【发布时间】:2021-03-17 13:18:04 【问题描述】:我有一个包含地理数据的办公室 mysql 数据库。我正在尝试将办公城市列表放入 javascript 数组中。现在,我只想设置一个简单的$.ajax()
将列表记录到控制台中,但它返回 null。我只是在页面加载后在控制台中运行我的 JavaScript 函数“query()”。
这是我的 JavaScript。
function query()
$.ajax(
url: "query.php",
method: "POST",
dataType: 'json',
success: function(data)
let output = JSON.parse(data)
console.log(output)
)
这里是query.php
<?php
include 'database.php';
$sql="SELECT `Office City` FROM `offices`";
$result = $link->query($sql);
if ($result)
while($row = $result->fetch_assoc())
array_push($result_array, $row);
header('Content-type: application/json');
echo json_encode($result_array);
$link->close();
?>
这里是database.php。我可以使用这个 PHP 写入 MySQL,所以我认为它是正确的。
<?php
$hostname = "hostus.mostus.com";
$username = "name";
$password = "pw";
$database = "db";
$link = mysqli_connect($hostname, $username, $password,$database);
if (mysqli_connect_errno())
die("Connect failed: %s\n" + mysqli_connect_error());
exit();
当我在控制台中运行 query()
时,它会响应“未定义”然后返回 null。
【问题讨论】:
inquery.php
, $result_array
没有在while循环前声明...
let output = JSON.parse(data)
似乎没有必要并且可能是错误的。就做console.log(data)
您是否在浏览器的网络选项卡中看到从 PHP 返回的任何内容?
@LouysPatriceBessette 成功了,谢谢。
@Dharman 我明白你的意思。另请回复:下面的数据库列名。谢谢。
【参考方案1】:
您的 sql 无效。 我之前也会初始化 $result_array 。当前,如果结果为空,则返回 null。
<?php
include 'database.php';
$sql="SELECT `Office`, `City` FROM `offices`";
$result = $link->query($sql);
$result_array = [];
if ($result)
while($row = $result->fetch_assoc())
array_push($result_array, $row);
header('Content-type: application/json');
echo json_encode($result_array);
$link->close();
?>
【讨论】:
是什么让你认为 SQL 无效? @Dharman 他选择“办公城市”作为 1 列。也可能空间是错误的 是的,你认为这应该是两列?是什么让你这么认为?以上是关于试图将 MySQL 查询的结果放入 JavaScript 数组的主要内容,如果未能解决你的问题,请参考以下文章