Balken "umdrehen" in PHP für eine Auswertung

metalwilli

Grünschnabel
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:

PHP:
<?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)."'>"; 
?>

Man beachte besonders qu1n also die Antwort mit dem roten Balken!

Ich will, dass das Dingens genau in die andere Richtung "fahren lassen". Hoffe es ist halbwegs verständlich, was gemeint ist?:p

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.
 
Margin-left ist kein Attribut des IMG Tags, sondern ein Element/Befehl(oder wie man das nennt) aus den CSS Style Sheets.

Versuch mal

PHP:
<?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;">'; 
?>

P.S.: Habe mal die Single und Doublequotes "getauscht" damit man nichts maskieren muss. Hoffe mir ist dabei kein Fehler unterlaufen.
 
Schau dir mal den Quellcode des ausgeworfenen HTMLs an

HTML:
<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>

Wie du siehst, beim IMG Tag ist nichts zu sehen vom style und margin.
Da musst du nochmal schauen.

PS: ich habe mir jetzt nicht die Logik deines Scripts angeschaut, sondern nur nach Syntax und Programmierfehlern gesucht
 
Hallo, danke für deine Mühen aber ich bin grad selber auf die Lösung des Problems gekommen war ganz simpel::eek:

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:suspekt:

mfg, metalwilli
 
Zurück