我正在做一个本地项目,我有一些问题无法解决,我在这个phorum中搜索信息但无法解决这个问题。
首先:我做一个SQL查询,结果就是:
Cantidad anio
115.77 2015
301.35 2016
1603.81 2017
现在我想做一个图形线画布,在数据上我将放置年份范围(范围由用户选择)。我将在PHP文件上绘制,这是我的文件,其中错误是:
注意:第42行的数组到字符串转换
我虽然做了一个辅助的累积变量并将这个var放在脚本上,但是没有用。 我不知道是否还有其他最佳方法,我会很乐意帮助。
关心并感谢阅读!
PD:我修好了第42行,抱歉:$ aux + =" {year:' $ anio',value:$ dinero}";
<?php
include dirname(__FILE__).'/../Database/dbcon.php';
header('Content-Type: text/html; charset=utf-8');
$inicio=$_REQUEST['inicio'];
$fin=$_REQUEST['final'];
$anio=0;
$dinero=0;
$sql="Select SUM(gastos.Cantidad) 'Cantidad', year(gastos.Fecha) 'anio'
from ciclo
inner join gastos on ciclo.Identificador=gastos.year_id
where ciclo.Ciclo BETWEEN $inicio and $fin GROUP by anio";
$resultado=$conn->query($sql) or die('fecha_fin');
$resul_field=$resultado->field_count;
$array_mes[]=array();
$array_cantidad[]=array();
$total[]=array();
$contador=0;
$c=0;
$aux=0;
while($fila = mysqli_fetch_assoc($resultado)){
foreach ($fila as $key => $value) {
$anio=$fila['anio'];
$Cantidad=$fila['Cantidad'];
}
$array_cantidad[$c]=$Cantidad;
$array_mes[$c]=$anio;
$c++;
}
$long=count($array_cantidad);
for ($i=0; $i < $long; $i++) {
$contador=$array_mes[$i];
if($contador<$fin){
$anio=$array_mes[$i];
$dinero=$array_cantidad[$i];
$aux+=" {year: '$anio', value: $dinero},";
}else{
$anio=$array_mes[$i];
$dinero=$array_cantidad[$i];
**$aux+= " {year: '$anio', value: $dinero}";**
}
}
echo "
<script>
new Morris.Line({
element: 'graph_line',
xkey: 'year',
ykeys: ['value'],
labels: ['Value'],
hideHover: 'auto',
lineColors: ['#26B99A', '#34495E', '#ACADAC', '#3498DB'],
data: [
$aux;
]
});
</script>";
?>
答案 0 :(得分:1)
我认为你可以解决这个问题。 您不必在字符串变量中连接您的数据,而是可以将其附加到数组并将其转换为JSON,然后再在脚本标记上打印。
变化:
$aux=0;
对此:
$aux = array();
变化:
$aux+=" {year: '$anio', value: $dinero},";
和
$aux+= " {year: '$anio', value: $dinero}";
对此:
$aux[] = (object)array(
'year' => $anio,
'value' => $dinero
);
现在我们有一个包含您需要的所有项目的数组。所以你可以使用JSON:
将它转换为字符串变化:
data: [
$aux;
]
对此:
data: " . json_encode($aux) . "