diggity
Erfahrenes Mitglied
Hi Jungs!
Ich schreib ja grad an meiner Umfrage, funktioniert eigentlich alles schon recht gut, bis auf die Ausgabe. Die Ausgabe für die aktuelle Umfrage funktioniert bestens, doch ich hab noch die Funktion eingebaut dass man sich die Ergebnisse alter bzw. vergangener Umfragen auch ansehen kann. Ist im Prinzip genau das Selbe wie die Ausgabe der aktuellen Umfrage, aber ich hab da ein paar Probleme ...
Das Script zur Ausgabe der aktuellen Umfrage sieht folgendermaßen aus:
Wie gesagt, das funktioniert wunderbar.
Jetzt zu meinen Problemchen mit den alten Ergebnissen. Die Ausgabe ist eigentlich genau die Selbe, nur muss ich noch eine while-Schleife drüber legen um eben wirklich alle Fragen auszulesen. Gesagt getan, das Ergebnis sieht eher bescheiden aus: http://dick.at/xanthos/tmp/poll.jpg
Gemeint ist das umrahmte, das sind die vergangenen Umfragen. Wie man sieht stimmen weder Stimmenzahl (gesamt, bei den einzelnen Antworten stimmt die Zahl) und dadurch sind halt die Prozentangaben auch falsch ....
Beim Code komme ich einfach nicht weiter, das Schleifenkonstrukt ist auf jeden Fall falsch. Wisst ihr wie ich das hinbekomme?
So sieht's aus:
Ich hoffe ihr könnt mir helfen bzw. findet den Fehler.
Danke schonmal!
Ich schreib ja grad an meiner Umfrage, funktioniert eigentlich alles schon recht gut, bis auf die Ausgabe. Die Ausgabe für die aktuelle Umfrage funktioniert bestens, doch ich hab noch die Funktion eingebaut dass man sich die Ergebnisse alter bzw. vergangener Umfragen auch ansehen kann. Ist im Prinzip genau das Selbe wie die Ausgabe der aktuellen Umfrage, aber ich hab da ein paar Probleme ...
Das Script zur Ausgabe der aktuellen Umfrage sieht folgendermaßen aus:
PHP:
<?php
require("inc/db.php");
mysql_connect($dbhost,$dbuser,$dbpass) or die ("Keine Verbindung zur db moeglich");
mysql_select_db($dbbase) or die ("db gibts net");
$res = mysql_fetch_row(mysql_query("SELECT frage,id FROM umfrage_fragen WHERE status = '1'")); //status = 1 bedeutet dass die umfrage aktiv ist
$res_antworten = mysql_query("SELECT * FROM umfrage_antworten WHERE frage_id = '$res[1]'"); //antworten für entsprechende frage holen
while($row = mysql_fetch_array($res_antworten)) {
$votes[] = $row['votes'];
}
$votes_ges = array_sum($votes); //anzahl der votes gesamt für diese frage
?>
Die derzeitige Umfrage: <strong><?php echo $res[0]; ?></strong><br /><br />
Zwischenstand (<?php echo $votes_ges; ?> Stimmen):<br /><br />
<table style="border: 0; width: 99%;" cellpadding="1" cellspacing="1">
<?php
$res_antworten = mysql_query("SELECT * FROM umfrage_antworten WHERE frage_id = '$res[1]' ORDER BY id ASC");
while($row = mysql_fetch_array($res_antworten)) {
$prozent = substr($row['votes'] / $votes_ges * 100, 0, 4) . "%"; //prozentangabe
?>
<tr>
<td style="width: 40%; text-align:left"><?php echo $row['antwort']; ?></td>
<td style="width: 10%; text-align:right"><?php echo $prozent; ?> (<?php echo $row['votes']; ?>)</td>
<td style="width: 50%; padding: 3px 3px 3px 3px;"><div style="width: <?php echo floor($prozent*3); ?>px; height: 15px; padding: 3px 3px 3px 3px; border: solid 1px #333366; background-color:#33CC66;"> </div></td>
</tr>
<?php } ?>
</table>
Wie gesagt, das funktioniert wunderbar.
Jetzt zu meinen Problemchen mit den alten Ergebnissen. Die Ausgabe ist eigentlich genau die Selbe, nur muss ich noch eine while-Schleife drüber legen um eben wirklich alle Fragen auszulesen. Gesagt getan, das Ergebnis sieht eher bescheiden aus: http://dick.at/xanthos/tmp/poll.jpg
Gemeint ist das umrahmte, das sind die vergangenen Umfragen. Wie man sieht stimmen weder Stimmenzahl (gesamt, bei den einzelnen Antworten stimmt die Zahl) und dadurch sind halt die Prozentangaben auch falsch ....
Beim Code komme ich einfach nicht weiter, das Schleifenkonstrukt ist auf jeden Fall falsch. Wisst ihr wie ich das hinbekomme?
So sieht's aus:
PHP:
<?php
require("inc/db.php");
mysql_connect($dbhost,$dbuser,$dbpass) or die ("Keine Verbindung zur db moeglich");
mysql_select_db($dbbase) or die ("db gibts net");
$res = mysql_query("SELECT frage,id FROM umfrage_fragen WHERE status = '0' ORDER BY id DESC"); //status = 0 bedeutet dass die umfrage inaktiv bzw. alt ist
while($row = mysql_fetch_array($res)) {
$frage_id = $row['id'];
$res_antworten = mysql_query("SELECT * FROM umfrage_antworten WHERE frage_id = '$frage_id'"); //antworten für entsprechende frage holen
while($row_votes = mysql_fetch_array($res_antworten)) {
$votes_alt[] = $row_votes['votes'];
}
$votes_ges = array_sum($votes_alt); //anzahl der votes gesamt für diese frage
?>
Frage: <strong><?php echo $row['frage']; ?></strong>
(<?php echo $votes_ges; ?> Stimmen):<br /><br />
<table style="border: 0; width: 99%;" cellpadding="1" cellspacing="1">
<?php
$res_antworten = mysql_query("SELECT * FROM umfrage_antworten WHERE frage_id = '$frage_id' ORDER BY id ASC");
while($row_aw = mysql_fetch_array($res_antworten)) {
$prozent = substr($row_aw['votes'] / $votes_ges * 100, 0, 4) . "%"; //prozentangabe
?>
<tr>
<td style="width: 40%; text-align:left"><?php echo $row_aw['antwort']; ?></td>
<td style="width: 10%; text-align:right"><?php echo $prozent; ?> (<?php echo $row_aw['votes']; ?>)</td>
<td style="width: 50%; padding: 3px 3px 3px 3px;"><div style="width: <?php echo floor($prozent*3); ?>px; height: 15px; padding: 3px 3px 3px 3px; border: solid 1px #333366; background-color:#33CC66;"> </div></td>
</tr>
<?php
}
?>
</table><br /><br />
<?php
}
?>
Ich hoffe ihr könnt mir helfen bzw. findet den Fehler.
Danke schonmal!
Zuletzt bearbeitet: