0
I’m generating charts and the data comes through a database query.
These dice are played in a two-position array.
In the "Labels" Script that should return the name of the vendors, in the case they are in the second position of the array [1]
And in "date" you must return the values, which in this case are in the first position of the array [0].
But if I keep both information the screen goes blank, if I just put one of them or names or values works.
Would anyone know how to make it work?
<html>
<head>
	<title>Bar Chart</title>
        <script src="chart_master/dist/Chart.bundle.js"></script>
        <script src="chart_master/Chart.js-master/samples/utils.js"></script>
	<style>
	canvas {
		-moz-user-select: none;
		-webkit-user-select: none;
		-ms-user-select: none;
	}
	</style>
</head>
<body>
     <?php
      require_once './setaqueryDash.php';
      require_once './conecta.php';
      $resultado = ibase_query($CONEXAO_TERM, QueryDashDesafios(substr($loja_selecionada, 0,3),$data_dash));//executa query e armazena o resultado em um array
     ?>
	<div  style="width: 100%;">
		<canvas id="desafios"></canvas>
	</div>
       
	<script>
                var color = Chart.helpers.color;
                var horizontalBarChartData = {
                labels:  [
                    <?php
                         while ($dash1 = ibase_fetch_row($resultado)){
                            echo "'" .trim($dash1['1'])."',";
                         }
                  ?>
                ],
                datasets: [{
                    label: 'Desafios',
                    backgroundColor: color(window.chartColors.red).alpha(0.5).rgbString(),
                    borderColor: window.chartColors.red,
                    borderWidth: 3,
                    data: [
                    <?php
                         while ($dash1 = ibase_fetch_row($resultado)){
                            echo trim($dash1['0']).',';
                         }
                    ?>
                    ] 
                    }]
                };
		window.onload = function() {
			var ctx = document.getElementById('desafios').getContext('2d');
			window.myHorizontalBar = new Chart(ctx, {
				type: 'horizontalBar',
				data: horizontalBarChartData,
				options: {
					// Elements options apply to all of the options unless overridden in a dataset
					// In this case, we are setting the border of each horizontal bar to be 2px wide
					elements: {
						rectangle: {
							borderWidth: 2
						}
					},
					responsive: true,
					legend: {
						
					},
					title: {
						display: true,
						text: 'Desafios'
					}
				}
			});
		};
	</script>
</body>
</html>
Executes the
var_dump($dash1);within yourwhile, see what comes up.– Thiago Az
I was able to make the data appear on the screen, but, my query returns 4 records but only 3 appear on the screen, I put the code this way. while ($dash1 = ibase_fetch_row($result)){ echo Trim($dash1['0']). ','; } I can’t understand why only 3 of the 4 records appear
– Alexandre Prezzi
@Alexandreprezzi put this information in your question. All the details you can put there are important to finding a solution.
– João Martins
@Joãomartins changed the question, see if it was clearer and if you need more information let me know. Thanks
– Alexandre Prezzi