phpbar.de logo

Mailinglisten-Archive

[php]Wie übergebe ich ein Array mit $_GET?

[php]Wie übergebe ich ein Array mit $_GET?

Rene Thiel reti at rennkuckuck.de
Mit Aug 6 02:48:43 CEST 2008


>> Richtig, bei erheblichen Datenmengen ist es empfehlenswert,
>> die Daten in Sessions abzulegen. So habe ich es realisiert:
>> http://rtol.de/rti/statistik/statistik.php
> Hallo René,
> das sieht ja toll aus. Hast Du das alles aus dem Kopf gemacht, oder hast Du
> ein kleines HowTo für mich? Mit Sessions habe ich noch nicht gearbeitet.

Sicher "aus dem Kopf", ein HowTo kann ich nicht anbieten, aber vielleicht kannst
Du mit dem folgenden Code was anfangen.

statistik.php:
<?php
session_start();
include 'serverdaten.php';

$heute = date('Y-m-d');
if (!isset($_GET['Datum']) OR  $_GET['Datum'] == 'heute') {$zeigDatum = $heute;}
else {$zeigDatum = $_GET['Datum'];}    //    ich weiß, hier ist es noch nicht ausgereift

if ($_GET['Anzahl'] > '' AND is_numeric($_GET['Anzahl'])) {$Anzahl_Tage = $_GET['Anzahl'];}
else {$Anzahl_Tage = 21;}

$streams = ARRAY('8092','2092','1092');

$verbindung = @mysql_connect($host, $user, $pass); // OR die (@mysql_error());
@mysql_select_db($db_2, $verbindung); // OR die (@mysql_error());

for($w = 0; $w < $Anzahl_Tage; $w++)
{
 $n = 1;
 $query = "
SELECT
`datum`,
SUBSTRING(`zeit`,1,13) AS Stunde,
AVG(";
foreach($streams AS $stream) {$query .= "`".$stream."`"; if($n++ < count($streams)) {$query .= " + ";}}
$query .= ") AS schnitt_".$w."
FROM `hoererzahlen`
WHERE `datum` = SUBDATE('".$zeigDatum."', INTERVAL ".$w." DAY)
GROUP BY Stunde
ORDER BY Stunde ASC
  ";
 $m=0;
 $ergebnis = @mysql_query($query, $verbindung); // OR die (@mysql_error());
 while($row = @mysql_fetch_array($ergebnis))
 {
  $graph[$row['datum']][$m] = round($row['schnitt_'.$w]);
  $m++;
 }
}
foreach($graph as $graphen) {$graph1[] = $graphen;}
foreach($graph as $datum => $graphen) {$datum1[] = intval(substr($datum,8,2));}

$_SESSION['zahlen'] = $graph1;
$_SESSION['daten'] = $datum1;
session_write_close();    //    Wichtig!!!
?>
<img src="graph1.php" border="0" alt="Kurve" title="Kurve">


graph1.php:
<?php
$farben[] = 'red';
$farben[] = 'teal';
$farben[] = 'blue';
$farben[] = 'black';
$farben[] = 'yellow';
$farben[] = 'orange';
$farben[] = 'brown';
$farben[] = 'aqua';
$farben[] = 'silver';
$farben[] = 'purple';
$farben[] = 'navy';
$farben[] = 'chocolate';
$farben[] = 'maroon';
$farben[] = 'green';
$farben[] = 'gray';
$farben[] = 'darkmagenta';
$farben[] = 'darkslategray';
$farben[] = 'tomato';
$farben[] = 'plum';
$farben[] = 'violet';
$farben[] = 'lime';
$farben[] = 'lightseagreen';
$farben[] = 'turquoise';
$farben[] = 'thistle';
$farben[] = 'yellowgreen';
$farben[] = 'salmon';
$farben[] = 'saddlebrown';
$farben[] = 'royalblue';
$farben[] = 'palevioletred';

include "jpgraph.php";
include "jpgraph_line.php";

session_start();
$zahlen = $_SESSION['zahlen'];
$daten = $_SESSION['daten'];
$hoehe = count($zahlen) * 18;
if ($hoehe < 400) {$hoehe = 400;}

$graph = new Graph(1100,$hoehe);
$graph->SetMarginColor('white');
$graph->SetScale("textlin");
$graph->SetFrame(false);
$graph->SetMargin(148,10,30,30);

$graph->ygrid->SetFill(true,'#EFEFEF at 0.5','#FFFFFF at 0.5');
$graph->xgrid->Show();

for ($ii = 0; $ii < count($zahlen); $ii++)
{
 $p[$ii] = new LinePlot($zahlen[$ii]);
 $p[$ii]->SetColor($farben[$ii]);
 $p[$ii]->SetLegend($daten[$ii]);
 $graph->Add($p[$ii]);
}

$graph->legend->SetShadow('gray at 0.4',5);
$graph->legend->SetPos(0.03,0.05,'left','top');

// Output line
$graph->Stroke();
?>


Gruß
René Thiel (Rennkuckuck)
mailto:reti at rennkuckuck.de
--
http://rennkuckuck.de - Die Rumänien-Seiten
http://rtol.de - Dynamische Webseiten mit PHP, mySQL und CSS





php::bar PHP Wiki   -   Listenarchive