Как перебрать значения базы данных по дате для гугл-чартов

Я видел подобные вопросы, но до сих пор не понимаю, как это работает … У меня есть это, пока цикл зацикливает мою БД на даты, ведет и продал. Для каждой даты в БД я хотел бы показать ежедневные заявки и проданные для каждой даты в БД на линейном графике.

$sql = "SELECT * FROM customers WHERE source = 'website' ORDER BY date ASC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$sold = $row['sold'];
$visit= $row['visit'];
$date= $row['date'];
}else{

}
}

Вот сценарий диаграммы —

<script type="text/javascript">

google.charts.setOnLoadCallback(drawChartl);

function drawChartl() {
var data = google.visualization.arrayToDataTable([
['Date', 'Leads', 'Sold'],
['1st',  6,       2],
['2nd',  3,       1],
['3rd',  2,       3],
]);

var options = {
title: 'Internet Performance',
curveType: 'function',
legend: { position: 'top' }
};

var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));

chart.draw(data, options);
}
</script><div id="curve_chart" style="width: 1900px; height: 500px"></div>

1

Решение

см. следующий фрагмент …

нужен массив, который содержит все данные -> $json

затем добавьте каждую строку в $json -> $dataRow

затем запишите результат в javascript -> data.addRows(<?= $jsonstring ?>);

попробуйте что-то вроде этого, вероятно, нужно форматировать дату тоже …

<?php
$json = array();
$sql = "SELECT * FROM customers WHERE source = 'website' ORDER BY date ASC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$dataRow = array(
$row['date'],
$row['visit'],
$row['sold']
);
array_push($json, $dataRow);
}
}

$jsonstring = json_encode($json);
?>

<script src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {
'callback': function () {
var data = google.visualization.arrayToDataTable([
[{type: 'string', label: 'Date'}, {type: 'number', label: 'Leads'}, {type: 'number', label: 'Sold'}]
]);

data.addRows(<?= $jsonstring ?>);

var options = {
title: 'Internet Performance',
curveType: 'function',
legend: { position: 'top' }
};

var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
chart.draw(data, options);
},
'packages': ['corechart']
});
</script>

<div id="curve_chart" style="width: 1900px; height: 500px"></div>
1

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

Других решений пока нет …

По вопросам рекламы [email protected]