![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
User
Data di registrazione: Oct 2011
Ubicazione: Como
Messaggi: 24
|
Aggiunta voto record sbagliato
Ciao a tutti! Sto realizzando una semplice galleria fotografica con possibilità di voto. Ho deciso di mostrare una foto a caso ad ogni aggiornamento, il problema, però, è che il voto non viene aggiunto alla foto giudicata, ma a quella che compare successivamente, dopo l'aggiornamento causato dal form.
Vi posto il codice: codice PHP: Codice:
$estraifotouomini = mysql_query("SELECT * FROM foto WHERE conf = '1' AND sesso = 'm' ORDER BY rand() LIMIT 1"); while($risultatouomini = mysql_fetch_array($estraifotouomini)){ echo "<i>Le foto sono mostrate in modo casuale.</i><br><br><br> <center><img src='" . $risultatouomini['url'] . "'></center>"; if(isset($_SESSION['utente'])){ echo "<br><br> <center> <form method='POST'> <table><tr> <td><input type='submit' name='votasi' value='1'></td> <td><input type='submit' name='votano' value='0'></td> </tr></table> </form> </center>"; if(isset($_POST['votasi']) || isset($_POST['votano'])){ if(isset($_POST['votasi'])){ $votasi = $risultatouomini['si']+1; mysql_query("UPDATE foto SET si = '$votasi' WHERE id = '$risultatouomini[id]'"); } else { $votano = $risultatouomini['no']+1; mysql_query("UPDATE foto SET no = '$votano' WHERE id = '$risultatouomini[id]"); } } } } Non posso mostrarvi un esempio perchè è tutto in locale. Spero abbiate capito e possiate aiutarmi. Grazie |
|
|
|
|
|
|
|
#2 (permalink) |
|
Data di registrazione: Oct 2009
Ubicazione: Garlasco... non sono stato io!!!!
Messaggi: 347
|
Perchè quando invii il form si ricarica la pagina cambiando la foto...
Col form, devi inviare anche l'id della foto, magari mettendolo in un input hidden. Quando acquisisci i dati dal form, vai ad aggiornare il record giusto col suo relativo id. Codice:
<input type="hidden" name="id_foto" value="'.$risultatouomini['id'].'" /> Codice:
$id_foto=$_POST['id_foto']; mysql_query("UPDATE foto SET si = '$votasi' WHERE id = '$id_foto'"); |
|
__________________
www.tuo-web.com |
|
|
|
|
|
|
#3 (permalink) |
|
User
Data di registrazione: Oct 2011
Ubicazione: Como
Messaggi: 24
|
Grazie, ho fatto come mi hai detto e funziona.
Ecco il nuovo codice: Codice:
$estraifotouomini = mysql_query("SELECT * FROM foto WHERE conf = '1' AND sesso = 'm' ORDER BY rand() LIMIT 1"); while($risultatouomini = mysql_fetch_array($estraifotouomini)){ echo "<i>Le foto sono mostrate in modo casuale.</i><br><br><br> <center><img src='" . $risultatouomini['url'] . "'></center>"; if(isset($_SESSION['utente'])){ echo "<br><br> <center> <form method='POST'> <table><tr> <input type='hidden' name='id_foto' value='" . $risultatouomini['id'] . "'/> <td><input type='submit' name='votasi' value='1'></td> <td><input type='submit' name='votano' value='0'></td> </tr></table> </form> </center>"; if(isset($_POST['votasi']) || isset($_POST['votano'])){ if(isset($_POST['votasi'])){ $id_foto=$_POST['id_foto']; $votasi = $risultatouomini['si']+1; mysql_query("UPDATE foto SET si = '$votasi' WHERE id = '$id_foto'"); } else { $votano = $risultatouomini['no']+1; mysql_query("UPDATE foto SET no = '$votano' WHERE id = '$risultatouomini[id]"); } } } } |
|
|
|
|
|
#4 (permalink) |
|
Data di registrazione: Oct 2009
Ubicazione: Garlasco... non sono stato io!!!!
Messaggi: 347
|
Se non fai submit dal form non dovrebbe aggiungere il voto se aggiorni la pagina... tuttavia, se fai il submit, aggiornare la pagina è come riinviare il form quindi ti aggiunge il voto.
E' il classico problema... Prova a fare un redirect ad una pagina dove è presente un ulteriore redirect a questa... in pratica: fagli fare un giro e nel frattempo, cerca di svuotare l'array di sessione: Codice:
$_POST['votasi']=''; $_POST['votano']=''; $_POST['id_foto']=''; Codice:
$id_foto=$_POST['id_foto']; $votasi = $risultatouomini['si']+1; mysql_query("UPDATE foto SET si = '$votasi' WHERE id = '$id_foto'"); |
|
__________________
www.tuo-web.com |
|
|
|
|