Угловая диаграмма JS и подключение к MySQL Backend

Прежде всего, заранее спасибо за любую помощь. Я несколько дней пытался выяснить, как подключить объект угловой диаграммы к базе данных mysql. В настоящее время у меня есть графики, работающие со статическими данными. У меня есть общий php-файл в моем проекте, который выглядит примерно так:

// Create the connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check the connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//echo "Connected successfully";

//the sql to run
$sql = "SELECT * FROM Test2";
//run it
$result = $conn->query($sql);

//check for results
if ($result->num_rows > 0) {
//create an array
$dataarray[] = array();

//loop em
while($row =mysqli_fetch_assoc($result)) {
$dataarray[] = $row;
}
//make em json
echo json_encode($dataarray);
}
//} else {
//    echo "0 results";
//}

//close out our connection
$conn->close();
?>

Это отлично работает. Эта таблица возвращает пару строк с заголовками Name и Value. Ничего, кроме данных испытаний в это время.

В моем html / javascript у меня есть следующее:

<script>
angular.module("ChartApp", ["chart.js"]).controller("PieCtrl", function ($scope, $http) {
$http.get('./GetTestData.php').
success(function(data) {
$scope.records = data;

});

$scope.labels = ["Download Sales", "In-Store Sales", "Mail-Order Sales"];
$scope.data = [300, 500, 100];
});
</script>

Я не совсем уверен, куда идти отсюда. Любая помощь будет оценена.

0

Решение

Взял навсегда, но я наконец понял это. Мне пришлось взять объект JSON и преобразовать значения в отдельные массивы. Вот соответствующий код:

angular.module("ChartApp", ["chart.js"]).controller("PieCtrl", function ($scope, $http) {
$http.get('./GetTestData.php').
success(function(data) {
var names = [];

for(var i = 0; i < data.length; i++) {
var obj = data[i];

if(obj.Name != undefined) {
names.push(obj.Name);
}
}

var values = [];
for(var i = 0; i < data.length; i++) {
var obj = data[i];

if(obj.Name != undefined) {
values.push(obj.Value);
}
}
//$scope.records = data;
$scope.labels = names;
$scope.data = values;
});

});
</script>
0

Другие решения

Я получил следующую ошибку с этим кодом:

Uncaught TypeError: Невозможно прочитать свойство ‘draw’ из неопределенного

Поэтому мне пришлось вставить [ а также ] в $scope.data чтобы это работало.

$scope.labels = names;
$scope.data = [values];
0