【发布时间】:2016-01-18 02:25:39
【问题描述】:
我正在尝试使用 PHP 访问 MySQL 数据库以填充 Javascript 数组,但该数组始终为空。之前,我有一个“www-data@localhost”访问错误,但无法弄清楚并回滚了代码。任何人都可以分享任何见解吗?
JS:
var arrayPOIs = [];
function getPoints(){
$.get('getdata.php', function(data){
arrayPOIs = data;
});
}
getdata.php:
$mysqli = new mysqli("localhost", "user", "pass", "test");
if (mysqli_connect_errno())
{
echo("Connect failed: ") . mysqli_connect_error();
exit();
}
$query = "SELECT * FROM points";
$result = mysqli_query($query) or die(mysqli_error());
$potential = mysqli_fetch_array($result);
echo json_encode($potential);
我试图将表的内容输出到数组。在我的浏览器控制台中,它总是显示为空。如:
arrayPOIs
""
我认为数据库连接查询过程可能存在一些问题。虽然,我对此很陌生,而且我迷路了。有什么想法吗?
此外,我如何以及在哪里可以实时检查 PHP 正在做什么,即错误消息?
编辑:
对 cmets 的跟进:
在添加
"json"作为第三个参数后,arrayPOIsvar 变为(在 FF 的控制台中)Array [ ]我的
getdata.php页面在直接访问时显示为空(空白)
EDIT2:
在 Niranjan N Raju 的帮助 (+1) 之后,它已部分修复。我的查询调用中的 php 语法错误。现在,我的对象不正确。我得到:
{"0":"1","id":"1","1":"poi_teste1","name":"poi_teste1","2":"41.1953","latitude":"41.1953 ","3":"-8.60134","经度":"-8.60134"}
但我需要类似 (JSON) 的东西:
name: poi_teste1,
latitude: 3464357247,
longitude: 247245672
对于表中的每一行,如下所示:
id | name | latitude | longitude
#1 | string | float | float
#2 | string | float | float
#3 | string | float | float
#4 | string | float | float
【问题讨论】:
-
您好,在 json_encode 之前添加一个数组计数以确保您的数组不为空
-
将
json作为第三个参数添加到$.get函数时是否有效? -
另外,从浏览器访问
getdata.php页面,告诉我们它返回的内容。 -
我认为您现在必须更改获取类型。无法测试,试试
mysqli_fetch_assoc。
标签: javascript php mysql json