ТКС, вопрос ответил. но мой следующий вопрос - как мне построить ваш php для запуска и возврата нескольких наборов данных? Я сделаю некоторые исследования и могу опубликовать / связать вопрос здесь с that.tks снова!
с я работаю над графиками Google, и у меня есть базовая настройка.
В настоящее время он подключается к БД и возвращает набор данных на основе 1 запроса. Мне интересно, если я хочу нарисовать больше диаграмм с различными запросами к базе данных, как мне это сделать? Или какова лучшая практика?
Например, уже есть одно соединение с одним запросом, как я могу добавить другой запрос, а затем нарисовать диаграммы на основе того, что возвращается?
Я понимаю, что это может быть широкий вопрос, но, может быть, кто-то может показать мне, как я мог бы вернуть другой запрос / набор данных из БД?
Это мой код:
$(document).ready(function(){
console.log("hello world")
//alert("result")
$.ajax({
url:"data.php",
dataType : "json",
success : function(result) {
google.charts.load('current', {
'packages':['corechart','bar']
});
google.charts.setOnLoadCallback(function() {
console.log(result[0]["name"])
drawChart(result);
});
}
});
//add a 2nd call - will need a 2nd draw charts to draw the different dataset assuming it will be different
// - will need a 2nd data.php as the query will be different on the dataset
$.ajax({
url:"data.php",
dataType : "json",
success : function(result2) {
google.charts.load('current', {
'packages':['corechart','bar']
});
google.charts.setOnLoadCallback(function() {
console.log(result2[0]["name"])
drawChart(result2);
});
}
});
function drawChart(result) {
var data = new google.visualization.DataTable();
data.addColumn('string','Name');
data.addColumn('number','Quantity');
var dataArray=[];
$.each(result, function(i, obj) {
dataArray.push([ obj.name, parseInt(obj.quantity) ]);
});
data.addRows(dataArray);
var piechart_options = {
title : 'Pie Chart: How Much Products Sold By Last Night',
width : 400,
height : 300
}
var piechart = new google.visualization.PieChart(document
.getElementById('piechart_div'));
piechart.draw(data, piechart_options)
var columnchart_options = {
title : 'Bar Chart: How Much Products Sold By Last Night',
width : 400,
height : 300,
legend : 'none'
}
//var barchart = new google.visualization.BarChart(document
// .getElementById('barchart_div'));
//barchart.draw(data, barchart_options)
var chart = new google.charts.Bar(document.getElementById('columnchart_material'));
chart.draw(data, google.charts.Bar.convertOptions(columnchart_options));
} //have added this column chart but need to wrok out if it is best practice????
});
Я получаю объект обратно из моего запроса к БД, но я хочу знать, как вернуть больше / разных наборов данных из одного и того же соединения с БД? Например, что если я хочу нарисовать другую диаграмму с набором данных, возвращаемым из этого запросаselect * from product where name="Product1" OR name="Product2";
0: Object { id: "1", name: "Product1", quantity: "2" }
1: Object { id: "2", name: "Product2", quantity: "3" }
2: Object { id: "3", name: "Product3", quantity: "4" }
3: Object { id: "4", name: "Product4", quantity: "2" }
4: Object { id: "5", name: "Product5", quantity: "6" }
5: Object { id: "6", name: "Product6", quantity: "11" }
Для чего это стоит мой PHP-код выглядит следующим образом:
data.php
<?php
require_once 'database.php';
$stmt = $conn->prepare('select * from product');
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_OBJ);
echo json_encode($results);
?>
database.php
<?php
$conn = new PDO('mysql:host=192.168.99.100;dbname=demo','root', 'root');
?>
нота:это может представлять интерес