Hi Leute.
Ich hab mal ein wenig gecodet und ein kleines Projekt gestartet.
Also, ich hab eine Datenbank, aus der in verschiedenen Diagramm-Arten (Linien-, Säulen-, Balkendiagramm) die Werte von den Parteien der Landtagswahlen ausgelesen werden.
Also zum Beispiel die Ergebnisse der CDU. Die Wahlergebnisse werden in Prozent angezeigt, das natürlich für mehrere Jahre ( ich sag mal so von 1950 bis 2005 / insgesamt sind es 13 Werte die für jede Partei angezeigt werde)
Aufjeden Fall kann ich die Partei über eine Select Box auswählen, das klappt auch.
Der Quelltext für die Index.php
Code:
<form action="uebergabe.php" method="POST">
<select name='partei'>
<option>SPD</option>
<option>CDU</option>
<option>FDP</option>
<option>GRUENE</option>
<option>SONSTIGE</option>
</select>
<br>
<input type='radio' name='diagramm'>Kreisdiagramm<br>
<input type='radio' name='diagramm'>Liniendiagramm<br>
<input type='radio' name='diagramm'>Balkendiagramm<br>
<input type='radio' name='diagramm'>Säulendiagramm<br>
<input type='radio' name='diagramm'>Tortendiagramm<br>
<input type="submit" value="Ergebnisse anzeigen">
</form>
So, jetzt möchte ich, wie ihr im Quelltext seht, über die Radio-Buttons auswählen in welchem Diagramm die Ergebnisse angezeigt werden. Verständlich, wenn ich auf Kreisdiagramm klicke, sollen dann die Ergebnisse zum Beispiel für die CDU angezeigt werden.
Das wollte ich über Funktionen machen. Hatte meinen Info-Lehrer schon gefragt. Aber wir kamen insgesamt nur soweit.
Die Übergabe Seite uebergabe.php mit den Includes
PHP-Code:
<?php
include("saeulendiagramm.php");
include("balkendiagramm.php");
include("liniendiagramm.php");
include("tortendiagramm.php");
include("kreisdiagramm.php");
$partei = $_POST["partei"];
$diagramm = $_POST["diagramm"];
?>
Und die Zeilen von meinem Lehrer, die oben in den Diagramm-Dateien stehen
PHP-Code:
<?php
function kreisdiagramm($uebergabe)
{
$partei = $uebergabe;
$verbindung = mysql_connect("localhost", "root", "") or die ("Keine Verbindung zum Server ".mysql_error());
$datenbank = mysql_select_db("landtagswahlen") or die ("Keine Datenbank ausgewähl");
$partei = $_POST['partei'];
$sql = "SELECT $partei,jahr FROM ergebnisse";
$abfrage = mysql_query($sql);
while ($datensatz = mysql_fetch_assoc($abfrage))
{
$daten[] = $datensatz[$partei];
}
// Einige Konstanten
$imBreite = 1000; // Bildbreite und Hoehe
$imHoehe = 1000;
$x0 = $imBreite/2; // Mittelpunkt des Kreises
$y0 = $imHoehe/2;
$d1 = 0.7*$imBreite; // Durchmesser des Kreises
$d2 = 0.7*$imHoehe; // Beide Halbachsen sind gleich lang
// Grafik-Typ festlegen
header("Content-type: image/png");
// Neues Bild erzeugen
$bild = imagecreate($imBreite, $imHoehe);
// Farben festlegen (RGB-Farben)
// Hinweis: Die erste definierte Farbe legt die Hintegrundfarbe fest!
$farbe[0] = imagecolorallocate($bild, 255, 255, 255); // weiss
$farbe[1] = imagecolorallocate($bild, 192, 192, 192); // grau
$farbe[2] = imagecolorallocate($bild, 0, 150, 255); // blau
$farbe[3] = imagecolorallocate($bild, 255, 0, 0); // rot
$farbe[4] = imagecolorallocate($bild, 0, 100, 200);
$farbe[5] = imagecolorallocate($bild, 137, 255, 0);
$farbe[6] = imagecolorallocate($bild, 50, 125, 89);
$farbe[7] = imagecolorallocate($bild, 0, 200, 90);
$farbe[8] = imagecolorallocate($bild, 234, 25, 30);
$farbe[9] = imagecolorallocate($bild, 167, 25, 234);
$farbe[10] = imagecolorallocate($bild, 198, 200, 100);
$farbe[11] = imagecolorallocate($bild, 100, 90, 234);
$farbe[12] = imagecolorallocate($bild, 12, 255, 0);
$farbe[13] = imagecolorallocate($bild, 56, 5, 70);
$farbe[14] = imagecolorallocate($bild, 100, 200, 50);
$schwarz = imagecolorallocate($bild, 0, 0, 0);
// Diagramm erstellen
# Die Summe entspricht 100%
$summe=0;
for($i=0; $i<count($daten); $i++)
$summe += $daten[$i];
$w[0] = 0;
$ws = 0; // Winkelsumme, gleichzeitig Anfangs- bzw. Endwinkel
for($i=0; $i<count($daten); $i++) {
$p[$i] = $daten[$i]/$summe; # Daten -> Prozent
$w[$i+1] = $p[$i]*360; # Prozent -> Winkel
imagefilledarc($bild, $x0, $y0-$h, $d1, $d2, $ws, $ws+$w[$i+1], $farbe[$i+1], IMG_ARC_PIE);
$ws = $ws + $w[$i+1];
}
// Beschriftung
imagestring($bild, 10, 0, 20*$schrift, $partei, $schwarz);
// Legende
for ($i=0; $i<=count($daten); $i++) {
$prozent = $daten[$i];
imagestring($bild, 4, $i*50, 100, "$prozent"."%",$farbe[$i+1]);
}
// Das Bild ausgeben und den Speicherplatz wieder freigeben
imagepng($bild);
imagedestroy($bild);
}
?>
So, ich komm einfach nicht weiter. Es läuft einfach nicht. Er gibt keinen Fehler oder Sonstiges aus.
Wäre sau cool, wenn ihr einen Lösungsansatz habt. Mir fehlt nämlich jeglicher...Vielen Dank euch!