ik had zitten surfen en vond een open source script voor grafieken te tonen
http://www.jqplot.com/index.php

nu ik hou mijn meterstanden van water en elektriciteit bij en zou nu graag deze in grafiek op mijn page willen tonen
heb eerst geprobeerd met vaste waarden en inderdaad lukt perfect.
nu wou ik mijn eigen waarden in het jqplot script steken.

dit is static script voor de grafiek
dus op lijn 2 staan de waarden (var line1=[......])

<?php
<script>
$(document).ready(function(){
  var line1=[['2008-06-30 8:00AM',4], ['2008-7-14 8:00AM',6.5], ['2008-7-28 8:00AM',5.7], ['2008-8-11 8:00AM',9], ['2008-8-25 8:00AM',8.2]];
  var plot2 = $.jqplot('chart2', [line1], {
      title:'Customized Date Axis', 
      axes:{
        xaxis:{
          renderer:$.jqplot.DateAxisRenderer, 
          tickOptions:{formatString:'%b %#d, %#I %p'},
          min:'June 16, 2008 8:00AM', 
          tickInterval:'2 weeks'
        }
      },
      series:[{lineWidth:4, markerOptions:{style:'square'}}]
  });
});
</script>
?>



<?php
$velden=mysqli_query($link,"SELECT id_elec  FROM elektriek ");
	while($row_veld = mysqli_fetch_array($velden))
	{
	$id_elec[]=$row_veld['id_elec'];	
	}
	
$count=mysqli_num_rows($velden);  //26 rijen
for($i=0;$i<$count;$i++){
$id_elec1 = $id_elec[$i];
$alle_waarden_jaar=mysqli_query($link,"SELECT *,DATE_FORMAT(datum_elec,'%Y-%m-%d %H:%m') as datum  FROM elektriek WHERE id_elec='$id_elec1'");
	while($row_alle_waarden_jaar = mysqli_fetch_array($alle_waarden_jaar))
	{
	$Datum=$row_alle_waarden_jaar['datum'];
	$meterstand=$row_alle_waarden_jaar['meterstand_elec'];
	}
echo  $chart= "['".$Datum."',".$meterstand."], ";
}
?>

hoe krijg ik mijn waarden bewaard in echo $chart in onderstaand script.



<?php
<script>
$(document).ready(function(){
  var line1=[ ..... $chart......  ];
  var plot2 = $.jqplot('chartdiv', [line1], {
      title:'verloop energie verbruik', 
      axes:{
        xaxis:{
          renderer:$.jqplot.DateAxisRenderer, 
          tickOptions:{formatString:'%b %#d, %#I %p'},
          min:'January 01, 2015 8:00AM', 
          tickInterval:'4 weeks'
        }
      },
      series:[{lineWidth:4, markerOptions:{style:'square'}}]
  });
});
</script>
?>
Chris Bosmans op 25/11/2015 23:24:02

ik had zitten surfen en vond een open source script voor grafieken te tonen


Ik stelde een vraag op het forum welke systemen er waren en hebt toen een keuze gemaakt voor Jqplot.

Overigens moet je je data opbouwen in je WHILE loop.
Hier dus in:

<?php
while($row_alle_waarden_jaar = mysqli_fetch_array($alle_waarden_jaar))
{
$Datum=$row_alle_waarden_jaar['datum'];
$meterstand=$row_alle_waarden_jaar['meterstand_elec'];
}
?>



Peter K op 26/11/2015 07:37:13

[quote="Chris Bosmans op 25/11/2015 23:24:02"]
ik had zitten surfen en vond een open source script voor grafieken te tonen


Ik stelde een vraag op het forum welke systemen er waren en hebt toen een keuze gemaakt voor Jqplot.
[/quote]

Peter K: ik denk dat je twee mensen door elkaar haalt. ;-)
Ik stelde die vraag maar heb me er nog niet in verdiept.
Danny von Gaal op 26/11/2015 08:58:00

[quote="Peter K op 26/11/2015 07:37:13"]
[quote="Chris Bosmans op 25/11/2015 23:24:02"]
ik had zitten surfen en vond een open source script voor grafieken te tonen


Ik stelde een vraag op het forum welke systemen er waren en hebt toen een keuze gemaakt voor Jqplot.
[/quote]

Peter K: ik denk dat je twee mensen door elkaar haalt. ;-)
Ik stelde die vraag maar heb me er nog niet in verdiept.
[/quote]
Mijn welgemeende excuses lol... Het was nog vroeg he.
Wel enorm toevallig!
bedoel je zoiets dan?



<div id="chartdiv" style="height:400px;width:900px; "></div>

<?php 
/**************************************************************************/
// opzoeken nulpunt (1ste meting) die wordt gebruikt voor verschil te maken
/*************************************************************************/
$min_value_sql =mysqli_query($link,"SELECT MIN(meterstand_elec) AS laagste_maand  FROM elektriek ");
 while($min_value_row = mysqli_fetch_array($min_value_sql))
{
$meterstand_min=$min_value_row['laagste_maand'];
}

/**************************************************************************/
// Alle velden selecteren in de tabel
/*************************************************************************/
$alle_waarden_jaar=mysqli_query($link,"SELECT *,DATE_FORMAT(datum_elec,'%Y-%m-%d') as datum  FROM elektriek ");
	while($row_alle_waarden_jaar = mysqli_fetch_array($alle_waarden_jaar))
	{
	$datum=$row_alle_waarden_jaar['datum'];
	$meterstand=$row_alle_waarden_jaar['meterstand_elec']- $meterstand_min;
/**************************************************************************/
// JQ plot script 
/*************************************************************************/
?>
<script>
$(document).ready(function(){
   //de echo van mijn while loop
  var line1=[ <?php echo "['".$datum."',".$meterstand."], " ?>];
    var plot2 = $.jqplot('chartdiv', [line1], {
      title:'verloop energie verbruik', 
      axes:{
        xaxis:{
          renderer:$.jqplot.DateAxisRenderer, 
          tickOptions:{formatString:'%m.%Y '},
          min:'January 01, 2015', 
          tickInterval:'31 days'
        }
      },
      series:[{lineWidth:4, markerOptions:{style:'square'}}]
  });
});
</script>
<?php	
} // einde while loop
?>


ik heb de echo in het Jscript geechoed en alles komt er goed uit
maar ik krijg een grafiek te zien maar mijn waarden zitten er niet in.
en de error handling geeft geen fout.
als ik onderstaande de echo in het script vervang door onderstaande values (de echo apart) dan werkt het wel -> static data.


['2015-02-22 20:02',0], ['2015-02-23 18:02',21], ['2015-02-24 19:02',43], ['2015-02-27 18:02',101], ['2015-02-28 13:02',118], ['2015-03-01 11:03',139], ['2015-03-01 19:03',143], ['2015-03-02 21:03',169], ['2015-03-08 15:03',295], ['2015-03-17 08:03',469], ['2015-03-22 19:03',594], ['2015-03-31 08:03',776], ['2015-04-01 08:04',799], ['2015-04-09 08:04',959], ['2015-04-27 08:04',1234], ['2015-05-05 08:05',1363], ['2015-05-18 22:05',1610], ['2015-05-24 22:05',1702], ['2015-05-31 13:05',1804], ['2015-06-17 08:06',2057], ['2015-06-01 20:06',1805], ['2015-06-28 15:06',2259], ['2015-07-05 12:07',2365], ['2015-08-04 08:08',2806], ['2015-09-01 19:09',3265], ['2015-11-25 21:11',4858],
Chris,

De WHILE gaat nu om je <script> tags heen. Je zult in de bron ook zien dat je nu voor het aantal rows zoveel keer dat stuk zult zien.

Probeer dit eens:

<?php
while($row_alle_waarden_jaar = mysqli_fetch_array($alle_waarden_jaar))
{
	$datum=$row_alle_waarden_jaar['datum'];
	$meterstand=$row_alle_waarden_jaar['meterstand_elec']- $meterstand_min;
	
	$plotwaardes .= "[\"$datum\",$meterstand],";
}
/**************************************************************************/
// JQ plot script 
/*************************************************************************/
?>

<script>
	$(document).ready(function(){
		var line1=[ <?php echo $plotwaardes; ?> ];
		var plot2 = $.jqplot('chartdiv', [line1], {
			title:'verloop energie verbruik', 
			axes:{
				xaxis:{
					renderer:$.jqplot.DateAxisRenderer, 
					tickOptions:{formatString:'%m.%Y '},
					min:'January 01, 2015', 
					tickInterval:'31 days'
				}
			},
			series:[{lineWidth:4, markerOptions:{style:'square'}}]
		});
	});
</script>

nee geeft geen enkel beeld

maar snap niet waarop dit wel zou werken want dit geeft dezelfde echo als die van mijn enkele comments eerder.
want hier zit mijn echo ook in de while loop alleen had ik mijn script hier ook in de while gestoken.


<?php
$alle_waarden_jaar=mysqli_query($link,"SELECT *,DATE_FORMAT(datum_elec,'%Y-%m-%d') as datum  FROM elektriek ");
    while($row_alle_waarden_jaar = mysqli_fetch_array($alle_waarden_jaar))
    {
    $datum=$row_alle_waarden_jaar['datum'];
    $meterstand=$row_alle_waarden_jaar['meterstand_elec']- $meterstand_min;

$dataplot=['".$datum."',".$meterstand."],} // einde while loop

/**************************************************************************/
// JQ plot script 
/*************************************************************************/
?>
<script>
$(document).ready(function(){
   //de echo van mijn while loop
  var line1=[ <?php echo $dataplot; ?>];
    var plot2 = $.jqplot('chartdiv', [line1], {
      title:'verloop energie verbruik', 
      axes:{
        xaxis:{
          renderer:$.jqplot.DateAxisRenderer, 
          tickOptions:{formatString:'%m.%Y '},
          min:'January 01, 2015', 
          tickInterval:'31 days'
        }
      },
      series:[{lineWidth:4, markerOptions:{style:'square'}}]
  });
});
</script>
<?php    




Toevoeging op 27/11/2015 20:07:14:

hier laat hij de grafiek zien met mijn laatste waarde?



Toevoeging op 27/11/2015 20:56:36:

ok ik weet niet of dit DE oplossing is maar het werkt wel

dus in mijn J script hebt ik waar de values moeten komen de hele sql + while loop gestoken en dat werkt dus....


$(document).ready(function(){
   //de echo van mijn while loop
  var line1=[ <?php $alle_waarden_jaar=mysqli_query($link,"SELECT *,DATE_FORMAT(datum_elec,'%Y-%m-%d') as datum  FROM elektriek ");
    while($row_alle_waarden_jaar = mysqli_fetch_assoc($alle_waarden_jaar))
    {
    $datum=$row_alle_waarden_jaar['datum'];
    $meterstand=$row_alle_waarden_jaar['meterstand_elec']- $meterstand_min;
 echo   $plotdata= "['".$datum."',".$meterstand."], " ;
}?>];
    var plot2 = $.jqplot('chartdiv', [line1], {
      title:'verloop energie verbruik', 
      axes:{
        xaxis:{
          renderer:$.jqplot.DateAxisRenderer, 
          tickOptions:{formatString:'%m.%Y '},
          min:'January 01, 2015', 
          tickInterval:'31 days'
        }
      },
      series:[{lineWidth:4, markerOptions:{style:'circle'}}]
  });
});
</script>

Reageren