Probiere das Problem mal kurz zu beschreiben.
Muss eine Monatsübersicht für Lizenznutzungen erstellen; webbasiert. Da irgendwer mal was von JPGraph gehoert hatte, wurde das auch gleich gekauft und muss jetzt zum Einsatz kommen. Es soll aussehen wie eine Party-Bildergallerie, fuer jeden tag ein Graph (als Bild); bei Klick in groß zu sehen.
Ich lese also alle Datensätze ein. In einer Datei sind zwischen 50 und 130.000 Datensätze. Da liegt auch das Problem...
Damit das schneller geht möchte ich nur 20 oder 30 der Zeilen einlesen. Leider werden die Daten nicht "linear", also über den Tag gleichzeitig in die Datei geschrieben, sondern je nach Nutzung öfter.
Wie kriege ich das hin???
Hier mal ein Ausschnitt aus meinem Code:
Code:
<?php
include ("./JPGraph/src/jpgraph.php");
include ("./JPGraph/src/jpgraph_line.php");
include ("./JPGraph/src/jpgraph_flags.php");
function smallgraph($licpath,$licname,$year,$month,$day) {
$licensePath="{$licpath}/{$licname}.{$year}{$month}{$day}"; #Pfad- und Dateiname für die Lizenzdatei
$aktdate = "{$day}.{$month}.{$year}";
$fp = fopen($licensePath, 'r'); #Variable enthält Befehl, Datei zu öffnen (Leserechte)
$cnt = 1;
$i = 1;
while (!feof($fp)) { #Schleife zum Einlesen der Deteien in Zeilen
$zeile = (fgets($fp));
$teile = explode(" ", $zeile);
$uhrzeit = $teile[0];
$v4aktul = $teile[2];
$v4maxim = $teile[3];
$v5aktul = $teile[5];
$v5maxim = $teile[6];
$hostnam = $teile[7];
$v4v5akt = ($teile[2] + $teile[5]);
$v4v5max = ($teile[3] + $teile[6]);
$datax[] = $uhrzeit;
$datay1[] = $v4aktul;
$datay2[] = $v5aktul;
$cnt++;
if ($uhrzeit >= 1) { #Prüfen, ob $Uhrzeit grösser "0"
$datax3[] = $teile[0];
$datay3[] = ($teile[2] + $teile[5]);
$datay4[] = $teile[3];
$datay5[] = $teile[6];
} }
fclose($fp); #Schließen der Datei
...