Buonasera,
ho ultimamente creato il codice per un sondaggio. Spiego con ordine:
1) Ho creato due tabelle nel db in quanto vorrei memorizzare nel DB sia le opzioni possibili del sondaggio, sia i voti degli utenti. :
Sondaggio (ID (auto_increment), Domanda, 1risp, Num1, 2risp, Num2)
Sondaggio_Voto (ID (A_I), Nome, IDSondaggio)
2) Ho creato una pagina con tutta la lista di sondaggi (funziona)
3) Ho creato le opzioni (funziona):
Codice PHP:
<form action="bacheca_sondaggio_risultato.php" target="_top" method="POST" id=form1 name=form1>
<input type=radio name=vota value=1> <? echo($rss['1risp']) ?> <br><br>
<input type=radio name=vota value=2> <? echo($rss['2risp']) ?> <br><br>
<center><INPUT TYPE="Submit" VALUE="Vota" id=Submit2 name=Submit2 style={background:grey;}></center>
</form>
4) Il problema sorge nell'ultimo passaggio. Quando premo vota, nella tabella SondaggioVota viene sì inserito il nome dell'utente che ha votato (che non può più votare) ma l'ID del sondaggio è sbagliato. Più specificatamente, mi viene inserito l'ID dell'ultimo sondaggio creato. Mettiamo conto che io abbia creato 5 sondaggi. Se utente X vota il sondaggio il cui ID è 2, nella tabella SondaggioVota il campo IDSondaggio viene riempito con 5 (cioé l'ultimo).
Questo si ripercuote, ovviamente, anche nella somma dei voti del sondaggio (Quindi nella tabella Sondaggio) il cui ID è sempre dell'ultimo e non di quello per cui si è votato.
Questo è il codice:
Codice PHP:
$Mysql = "SELECT * FROM Sondaggio";
$Result1 = mysql_query($Mysql) or die(mysql_error());
$rs1 = mysql_fetch_array($Result1);
$ID = $rs1['ID'];
$risp = $_POST['vota'];
$Mysql = "SELECT * FROM Sondaggio WHERE ID = '$ID'";
$Result = mysql_query($Mysql) or die(mysql_error());;
$rs = mysql_fetch_array($Result);
$Num1 = $rs['Num1'];
$Num2 = $rs['Num2'];
switch($risp)
{
case '1': echo ('Hai votato la prima risposta');
$Num1 = $Num1 +1;
$MySql = "UPDATE Sondaggio SET Num1 = '$Num1' WHERE ID = '$ID'";
mysql_query($MySql) or die(mysql_error());break;
case '2': echo ('Hai votato la seconda risposta');
$Num2 = $Num2 +1;
$MySql = "UPDATE Sondaggio SET Num2 = '$Num2' WHERE ID = '$ID'";
mysql_query($MySql) or die(mysql_error());break;
}
$MySql = "INSERT INTO Sondaggio_Voto (Nome, IDSondaggio) VALUES ('$Login', '$ID')";
mysql_query($MySql) or die(mysql_error());