Не вытягивает данные с таблицы
Данный код должен вытягивать данные с базы, для отображения графика. По непонятной для меня причине данные с базы не вытягивает. Буду признателен если подскажете в чем ошибка.
<?php for ($i = 6; $i >= 0; $i--) {
global $mysqli;
$profit_table = $mysqli->query('profit', '`login`=' . escape_db($login) . ' AND `status`=' . escape_db(1) . ' AND `date_end`>=' . strtotime(date('d-m-Y', time() - 86400 * $i)) . ' AND `date_end` <=' . strtotime(date('d-m-Y', time() - 86400 * ($i - 1))));
$day_sum = 0;
foreach ($profit_table as $item) {
$day_sum = $day_sum + $item['summa'];
}
echo "{x: '" . date('d.m', time() - 86400 * $i) . "', y: '" . $day_sum . "'},";
} ?>
P.S. Решил добавить весь код что бы было понятнее, на всякий случай.
Morris.Area({
element: 'graph<?php echo strtoupper(escape($val)); ?>',
behaveLikeLine: true,
data: [
<?php for ($i = 6; $i >= 0; $i--) {
global $mysqli;
$profit_table = $mysqli->query('profit', '`login`=' . escape_db($login) . ' AND `status`=' . escape_db(1) . ' AND `date_end`>=' . strtotime(date('d-m-Y', time() - 86400 * $i)) . ' AND `date_end` <=' . strtotime(date('d-m-Y', time() - 86400 * ($i - 1))));
$day_sum = 0;
foreach ($profit_table as $item) {
$day_sum = $day_sum + $item['summa'];
}
echo "{x: '" . date('d.m', time() - 86400 * $i) . "', y: '" . $day_sum . "'},";
} ?>
],
xkey: 'x',
ykeys: 'y',
labels: 'x',
resize: true,
parseTime: false,
smooth: true,
lineColors: ['#3ab44c'],
lineWidth: 01,
pointStrokeWidths: [1],
shown: true,
pointFillColors: ['#3ab44c'],
pointStrokeColors: ['#fff'],
gridLineColor: 'rgba(0,0,0, .1)',
gridStrokeWidth: 1,
numLines: 9,
pointSize: 4,
yLabelFormat: function(y) {
return number_format(y.toString(), 2, ',', ' ');
},
hideHover: 'auto',
gridTextColor: '#000',
gridTextSize: 16,
grid: true,
axes: true,
continuousLine: 'undefined',
fillOpacity: 100,
hoverCallback: function(index, options, content, row) {
return "+" + number_format(row.y, 2, ',', ' ');
}
});
$(".graph_currency").on("click", function() {
$(".graph_currency").removeClass("active_graph");
$(this).addClass("active_graph");
val = $(this).data("val");
$(".chart_visible").css("display", "none");
$("#graph" + val).fadeIn(1500).css("display", "block");
//$(".graph"+val).css("display", "block");
});
function Values(val) {
$(".chart_visible").css("display", "none");
$("#graph" + val).css("display", "block");
}
$(document).ready(function() {
Values('<?php echo strtoupper(escape($val)); ?>');
});
Пробовал способом ниже.
<?php
for ($i = 6; $i >= 0; $i--) {
$list = get_list('profit', '`login`=' . escape_db($login) . ' AND `status`=' . escape_db(1) . ' AND `date_end`>=' . strtotime(date('d-m-Y', time() - 86400 * $i)) . ' AND `date_end` <=' . strtotime(date('d-m-Y', time() - 86400 * ($i - 1))));
$list_res = array();
$day_sum = 0;
foreach ($list as $item) {
$item["summa"] = $item["amount"];
$list_res = $day_sum + $item['summa'];
}
echo "{x: '" . date('d.m', time() - 86400 * $i) . "', y: '" . $list_res . "'},";
} ?>
Результат:
{x: '14.04', y: 'Array'},{x: '15.04', y: 'Array'},{x: '16.04', y: 'Array'},{x: '17.04', y: 'Array'},{x: '18.04', y: 'Array'},{x: '19.04', y: 'Array'},{x: '20.04', y: 'Array'}
Источник: Stack Overflow на русском