ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
263
263
EMPFEHLEN
-
26.05.07 17:59 #1
- Registriert seit
- Apr 2007
- Beiträge
- 8
Hallo Leute!
Bin gerade an einem Schulprojekt dran, und habe bisher Daten in einem HTML-Formular an die Datenbank übergeben und eingetragen. Jetzt geht es jedoch an die Auswertung über PHP.
Ich habe es so gemacht, dass die Anzahl der Antworten gezählt wird und dann als absolute Zahl, als %-Zahl von den Gesamtantworten der jeweiligen Frage und als grafischer Balken dargestellt wird. Die ersten 2 Sachen gehen. Der Balken wird auch in der korrekten Länge angezeigt doch möchte ich die roten Balken "spiegeln". Sie sollen also in die andere Richtung schauen als die grünen!
Auf der Seite http://metalwilli.me.ohost.de/test/evaluatedata.php kann man sich das Ergebnis mal anschauen.
Code für die Balken:
Man beachte besonders qu1n also die Antwort mit dem roten Balken!PHP-Code:<?php
//Anzahl der Antworten von Frage 1 zählen (zum Prozentrechnen)
$sql = "SELECT COUNT(*) as qu1total FROM questionnnaire where question1!=''";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
$anz=$row['qu1total'];
$proz=(100/$anz);
//bei question1 zählen wieviel mal Yes geantwortet wurde
$sql = "SELECT COUNT('question1') as qu1y FROM questionnnaire WHERE question1 = 'Yes'";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
$qu1y=$row['qu1y'];
echo $qu1y;
?>
</td>
<td width="150">
<?php
//nun multpliziert man den Prozentwert einer Antwort an der Gesamtheit * die Anzahl der Antworten bei denen Yes drinnen steht = Prozentwert
echo round($proz*$qu1y,2)."%";
?>
</td>
<td width="150">
<?php
//man macht in Photoshop ein "Bild" das 1 px breit und 5px hoch ist, dann multipliziert man es mit dem Prozentwert
echo "<img src='pics/balken_gruen.jpg' height='5' width='".round($proz*$qu1y*2,0)."'";
?>
</td>
</tr>
<tr>
<td width="150">No</td>
<td width="150">
<?php
$sql = "SELECT COUNT('question1') as qu1n FROM questionnnaire WHERE question1 = 'No'";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
$qu1n=$row['qu1n'];
echo $qu1n;
?>
</td>
<td width="150">
<?php
echo round($proz*$qu1n,2)."%";
?>
</td>
<td width="150">
<?php
echo "<img src='pics/balken_rot.jpg' height='5' width='".round($proz*$qu1n*2,0)."'>";
?>
Ich will, dass das Dingens genau in die andere Richtung "fahren lassen". Hoffe es ist halbwegs verständlich, was gemeint ist?
mfg, metalwilli
-
Weise den Nein-Grafikenbalken einen margin-left-Wert von der Differenz der Maximallänge und der Länge des Grafikbalkens zu. Wenn die Maximallänge 200 Pixel und die Länge des Grafikbalkens 123 Pixel ist, sollte der margin-left-Wert 200-123, also 77 Pixel betragen.
Markus Wulftange
-
26.05.07 18:45 #3
- Registriert seit
- Apr 2007
- Beiträge
- 8
jetzt schauts so aus:
http://metalwilli.me.ohost.de/test/evaluatedata.php
geändert hab ich folgendes:
er rechnet zwar aber er nimmt es mir nicht als wert für den margin....PHP-Code:<?php
echo "<img src='pics/balken_rot.jpg' height='5' width='".round($proz*$qu1n*2,0)."' margin-left:'".round($proz*$anz*2,0) - round($proz*$qu1n*2,0)."'>";
?>
mfg, metalwilli
-
Margin-left ist kein Attribut des IMG Tags, sondern ein Element/Befehl(oder wie man das nennt) aus den CSS Style Sheets.
Versuch mal
P.S.: Habe mal die Single und Doublequotes "getauscht" damit man nichts maskieren muss. Hoffe mir ist dabei kein Fehler unterlaufen.PHP-Code:<?php
echo '<img src="pics/balken_rot.jpg" height="5" width="'.round($proz*$qu1n*2,0).'" style="margin-left:'.round($proz*$anz*2,0) - round($proz*$qu1n*2,0).'px;">';
?>
-
27.05.07 12:29 #5
- Registriert seit
- Apr 2007
- Beiträge
- 8
Danke, aber trotzdem geht es so auch nicht! Hab die Single- und Doublequotes auch mal ausgewechselt aber nix.
Jetzt schauts so aus:
http://metalwilli.me.ohost.de/test/evaluatedata.php

mfg, metalwilli
-
Schau dir mal den Quellcode des ausgeworfenen HTMLs an
Wie du siehst, beim IMG Tag ist nichts zu sehen vom style und margin.HTML-Code:<td width="150"> <img src='pics/balken_gruen.jpg' height='5' width='57'</td> </tr> <tr> <td width="150">Satisfied</td> <td width="150"> 2</td> <td width="150"> 28.57%</td> <td width="150"> <img src='pics/balken_gruen.jpg' height='5' width='57'</td> <!-- IMG Tag hat kein Ende^^^^^^^^^^^^--> </tr>
Da musst du nochmal schauen.
PS: ich habe mir jetzt nicht die Logik deines Scripts angeschaut, sondern nur nach Syntax und Programmierfehlern gesucht
-
27.05.07 14:18 #7
- Registriert seit
- Apr 2007
- Beiträge
- 8
Hallo, danke für deine Mühen aber ich bin grad selber auf die Lösung des Problems gekommen war ganz simpel:

Ich hab einfach eine Spalte mehr gemacht. Der Balken der nach rechts gehen soll, einfach in die Rechte spalte und align = left (default) und der Balken der nach links gehen soll, einfach in die linke Spalte und align = right

jeztzt schauts so aus:
http://metalwilli.me.ohost.de/test/evaluatedata.php
gelöst
mfg, metalwilli
Ähnliche Themen
-
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
Arbeiten mit Feldern, "umdrehen einer Eingabe"
Von Roncalli im Forum C/C++Antworten: 2Letzter Beitrag: 11.01.09, 16:52 -
Bei "Line"-Befehl Balken mit Umrandung zeichnen
Von Black-Zero im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 29.10.08, 23:39 -
MySQL "ORDER by" umdrehen?
Von Jonas007 im Forum Relationale DatenbanksystemeAntworten: 8Letzter Beitrag: 08.12.06, 21:30 -
Helix-Spline "umdrehen"
Von JLo_Smiley im Forum Cinema 4DAntworten: 2Letzter Beitrag: 28.08.04, 09:18





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren