【发布时间】:2017-06-14 12:24:35
【问题描述】:
我正在用 MySQL 作为后端数据库在 AngularJS 中开发一个应用程序。 Web 服务使用 PHP 5.6.30。
我想知道从我的 MySQL 数据库的表 User 中检索通过 itemsArray 数组发送到 Web 服务的每个用户名的信息列表的最佳方法是什么:
-
itemsArray数组与用户名列表一起发送; -
returnedArray数组从 Web 服务返回,其中包含信息列表。对于每个用户名,idUser、用户名和密码都会返回以显示在 HTML 页面中。
MySQL 数据库中User 表的结构:
- idUser (int)
- 用户名(varchar)
- 密码(varchar)
发送到 Web 服务的数据结构 itemsArray(数组)示例:
var itemsArray = ["admin1", "admin2", "admin3", "admin4", "admin5"];
用于显示 Web 服务返回的数据的 HTML 示例:
<ul><li ng-repeat="item in returnedArray track by $index">{{ item }}</li></ul>
控制器示例:
angular.module('myApp').controller('Ctrl1', ['$scope', 'services', Ctrl1]);
function Ctrl1($scope, services) {
var itemsArray = ["admin1", "admin2", "admin3", "admin4", "admin5"];
//request to MySQL BD
services.getInfo(itemsArray).then(function(data){
$scope.returnedArray = data.data;
});
}
app.js 向 Web 服务发送请求的示例:
.factory('services', ['$http', function($http){
var serviceBase = 'services/';
var obj = {};
obj.getInfo = function (arrayItems) {
return $http.get(serviceBase + 'get_info?arrayItems=' + arrayItems);
};
// return obj
return obj;
}]);
PHP 中的 Web 服务示例:(必须填写)
// GET - Get Info
private function get_info(){
if($this->get_request_method() != "GET"){
$this->response('', 406);
}
$arrayItems = (array)$this->_request['arrayItems'];
$query = "TO COMPLETE";
$r = $this->mysqli->query($query) or die($this->mysqli->error.__LINE__);
if($r->num_rows > 0){
$result = array();
while($row = $r->fetch_assoc()){
$result[] = $row;
}
$this->response($this->json($result), 200); // send user details
}
$this->response('', 204); // send user detail
}
谢谢你*
【问题讨论】:
-
问题是什么?.. 你有没有尝试过从数据库中获取值?只有两种方式...
fetchAll和fetch(最后一种是大范围的最佳选择) -
显示用户密码 - 你在开玩笑吗?您的应用程序甚至不应该首先存储实际用户密码。
-
@CBroe:我创建了 Users 表作为测试 = 这是虚构的数据。我实际上不会在我的应用程序中显示存储的用户和密码。我的应用不存储此类信息。
-
@FieryCat:我问是因为我不知道如何解决我的问题。我最近开始编程,我不知道如何正确操作数组。
-
@Julia,可能的话,你可以详细解释你的问题是什么......(如果你没有从服务器上拿任何东西,那么启用错误绘图,检查日志,......以识别原始问题)
标签: javascript php mysql angularjs arrays