数组到字符串转换

时间:2017-01-31 23:27:28

标签: php sql

我正在做一个本地项目,我有一些问题无法解决,我在这个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>";


?>

1 个答案:

答案 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) . "