Jag vet inte riktigt hur jag ska göra för att presentera statistiken som ligger i databasen. Att bara presentera antal som röstat på vilket val är ju inga problem, det svåra kommer när det blir dags att räkna om det till procent och sedan presentera. Såhär ser koden ut (jag har markerat ut där jag behöver hjälp):
<?
$anslutning = mysql_connect("localhost","root","jättehemligt")
or die ("Anslutningen till databasen <b>misslyckades</b>.");
$databas = mysql_select_db("poll");
if(isset($alternativ)) {
$svar = mysql_query("SELECT alternativ, antal FROM resultat WHERE id='$alternativ'");
while($rad = mysql_fetch_array($svar)) {
$nyttantal = $rad["antal"];
$nyttantal = $nyttantal + 1;
echo ("Du röstade $rad[alternativ], som har fått $nyttantal röster.");
mysql_query("UPDATE resultat SET antal='$nyttantal' WHERE id='$alternativ'") or die("Kunde inte uppdatera databasen.");
}
}
$pres = mysql_query("SELECT antal, alternativ, id FROM resultat");
while($rad = mysql_fetch_array($pres)) {
HÄR VET JAG INTE HUR JAG SKA GÖRA
}
$fraga = mysql_query("SELECT fraga FROM fraga");
while($rad = mysql_fetch_array($fraga)) {
echo ("<br><br>$rad[fraga]<br><br>");
}
$alternativ = mysql_query($anslutning);
$alternativ = mysql_query("SELECT alternativ, id FROM resultat");
while($rad = mysql_fetch_array($alternativ)) {
?>
<form method="post" action="fraga.php">
<?
echo ("
<input type=\"radio\" name=\"alternativ\" value=\"$rad[id]\"> $rad[alternativ]<br>");
}
?>
<input type="submit" value="Rösta!">
</form>
Databasen ser ut som följer.
Resultattabellen:
+----+------------------------+-------+
| id | alternativ | antal |
+----+------------------------+-------+
| 1 | Ja, den fungerar | 19 |
| 2 | Nej, den fungerar inte | 14 |
| 3 | Jag vet faktiskt inte | 17 |
+----+------------------------+-------+
Frågetabellen:
+----+--------------------------------+
| id | fraga |
+----+--------------------------------+
| 1 | Fungerar den här omröstningen? |
+----+--------------------------------+
Koden är lite rörig, eftersom det här efter ett räknarskript är det första jag åtar mig att göra.
Allt ska vara fullt dynamiskt, det är därför jag vill att allt ska läggas i vektorer vid omräkning till procent och så vidare.
Lägg in följande innan raderna där du presenterar resultatet:
$summa = 1; // För att undvika division med noll
$res = mysql_query("SELECT SUM(antal) AS Summa FROM resultat");
while($row=mysql_fetch_array($res)){
$summa = $row['Summa'];
}
Då får du summan i variabeln $summa, sen ska det inte vara svårt att räkna ut procenten.
Dock har skriptet en svaghet om du tänkt dig att ha det dynamiskt. Du måste med nuvarande uppbyggnad ha en resultattabell för varje fråga. Har du istället i din resultattabell ett fält för id (som är lika med frågans id) och ett fält för alternativens id kan du använda samma resultattabell. Din kod och SQL-frågor måste naturligtvis anpassas till detta.
256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25