Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mySQL没有将数组返回到angularJS中_Javascript_Php_Mysql_Arrays_Angularjs - Fatal编程技术网

Javascript mySQL没有将数组返回到angularJS中

Javascript mySQL没有将数组返回到angularJS中,javascript,php,mysql,arrays,angularjs,Javascript,Php,Mysql,Arrays,Angularjs,我试图用PHP脚本检索存储在mySQL表中的数据。我希望这些数据以数组的形式返回,因为我随后在AngularJS应用程序中对其进行循环,并进行各种转换等。我可以很好地获取数据,但它只是作为数组中的一项返回,即每一行不作为数组的单独项返回。我目前的准则是: PHP获取请求 <?php require 'config.php'; $pdo = Database::connect(); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_E

我试图用PHP脚本检索存储在mySQL表中的数据。我希望这些数据以数组的形式返回,因为我随后在AngularJS应用程序中对其进行循环,并进行各种转换等。我可以很好地获取数据,但它只是作为数组中的一项返回,即每一行不作为数组的单独项返回。我目前的准则是:

PHP获取请求

<?php
require 'config.php';
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = 'SELECT * FROM user_details';

$stmt = $pdo->prepare( $sql );

$stmt->execute();

$result = $stmt->fetchAll( PDO::FETCH_ASSOC );

$json = json_encode( $result );

echo $json;

Database::disconnect();


?>
我还运行了一些测试来了解问题所在。具体地说,我看到变量是否是一个具有以下内容的数组:

$scope.varcheck = $scope.userprofiles.constructor === Array;
$scope.numRecords = $scope.userprofiles.length;
这是真的。然后我用以下方法检查数组的长度:

$scope.varcheck = $scope.userprofiles.constructor === Array;
$scope.numRecords = $scope.userprofiles.length;
这将返回0

如果有人有任何想法,那将是一个很大的帮助

我还有一个问题,如果数据库中存储了“/”或“'”,它会抛出get请求。我认为它很早就退出了。如果有人知道这件事,那也太好了

谢谢


Jack

$http方法返回一个无法迭代的承诺,因此您必须通过回调将结果附加到范围变量:

$scope.userprofiles = []; 
$http.get('php/getUserDetails.php')
.then(function(response) {
    $scope.userprofiles = response.data;
});

希望它可以帮助您:-)

您可以使用
typeof
获取数据类型。您好,Vinet。当我尝试typeof时,它返回数据是一个对象,而不是数组。php中的json_编码似乎将数组转换为对象而不是数组。你知道如何把它变成一个数组而不是一个单一的对象吗?嗨。所以我发现了问题所在。我试图在.then函数之外访问$scope.userprofiles。因此,我可以将所有代码放在.then函数的内部。但这似乎是一个相当不雅观的解决方案。你知道还有没有?嗨,维尼特。谢谢你的回复。我试过了,发现它只起了一半作用。它适用于类似ng重复或过滤器的东西。但是,如果您想运行for循环(例如,因为它无法将数据识别为数组),那么它将不起作用。这有意义吗?嗨,维尼特。再次感谢你回复我。我试过第二种选择。但它仍然会出现,因为数组长度为0。结果现在具有语法[[{…}]]。真奇怪!嗨,维尼特。不幸的是,仍然不起作用:(我不确定我是否在做一些更愚蠢的事情,例如在PHP中?感谢您迄今为止的所有帮助!此外,我还将PHP url数据直接复制并粘贴到应用程序中,然后运行相同的测试。在这种情况下,它与大于0的数组一起工作。但是,get请求仍然不起作用。它看起来像$http get request正在将数据插入一个数据数组?