Niet elke regel maar om de 5 regels ophalen
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$query = "SELECT TempOut FROM weerdata WHERE DateTime BETWEEN '" . $first_datetime . "' AND '". $second_datetime . "'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
blablabla
}
?>
$query = "SELECT TempOut FROM weerdata WHERE DateTime BETWEEN '" . $first_datetime . "' AND '". $second_datetime . "'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
blablabla
}
?>
Met deze waarden wordt dan de grafiek getekend. Dit werkt prima wanneer ik een tijdsperiode van 1 uur tot een paar dagen neem, maar bij een langere periode duurt het steeds langer voordat er een grafiek getekend is.
Dit is logisch aangezien het aantal regels die met de query opgehaald worden ook toeneemt en dus de array ook groter wordt. Nu wil ik bij een periode langer dan een paar dagen niet elke regel ophalen maar bijvoorbeeld 1 per 5. Hoe doe ik dit?
het resultaat van de grafiek tot nu toe staat op:
http://www.weerstation-houten.nl/pages/grafieken/grafiek.php
(en ja, hij doet het alleen nog maar voor de temperatuur ;), en op de tijdstippen dat de klok verzet wordt, gaat het nog niet helemaal goed maar daar wordt aan gewerkt ;))
Gebruik overigens mysql_fetch_assoc() ipv mysql_fetch_array(), dat is sneller.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$aTemperaturen = array();
$i = 1;
while($row = mysql_fetch_assoc($result))
{
if($i % 5 == 0)
{
array_push($row['TempOut'], $aTemperaturen);
}
$i++;
}
?>
$aTemperaturen = array();
$i = 1;
while($row = mysql_fetch_assoc($result))
{
if($i % 5 == 0)
{
array_push($row['TempOut'], $aTemperaturen);
}
$i++;
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
@Blanche: Hoe kom ik erachter wat de langzaamste schakel is? Want zo worden wel alle regels geselecteerd voordat ik wat met de gegevens kan doen. De array is uiteindelijk wel kleiner dus het aantal berekeningen die erna volgen is een vijfde van het oorspronkelijke. Dit zal wellicht wel tijd schelen maar wat is sneller...?
Is het ook mogelijk om tijdens het berekenen van de grafiek een ander plaatje te tonen?