【问题标题】:Trying to get results of a MySQL query into a JavaScript array试图将 MySQL 查询的结果放入 JavaScript 数组
【发布时间】: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。

【问题讨论】:

  • in query.php, $result_array 没有在while循环前声明...
  • let output = JSON.parse(data) 似乎没有必要并且可能是错误的。就做console.log(data)
  • 您是否在浏览器的网络选项卡中看到从 PHP 返回的任何内容?
  • @LouysPatriceBessette 成功了,谢谢。
  • @Dharman 我明白你的意思。另请回复:下面的数据库列名。谢谢。

标签: javascript php jquery mysql


【解决方案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 列。也可能空间是错误的
  • 是的,你认为这应该是两列?是什么让你这么认为?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
相关资源
最近更新 更多