Array e record

Ciao, sto cercando di creare un sistema di votazione a degli articoli con ajax e db. Vorrei che potessero votare solamente gli iscritti al sito e evitare le doppie votazioni. Pensavo di inserire in un campo del db tutti gli id di chi vota attraverso un array e array_push.

Può funzionare o sbaglio?

Se fosse una soluzione adottabile per controllare se uno ha già votato e quindi il suo id è presente nell'array, dovrei prendere il campo con una SELECT e poi scorrere l'array con foreach?

Grazie

inviato 7 anni fa
Gioge
X 0 X

Non mi sembra la strada migliore. Dovresti creare una tabella con tutti i voti inviati dagli utenti. In ciascun record di questa tabella dovrebbe esserci l'ID del sondaggio vatato, la preferenza espressa dall'utente e l'ID dell'utente votante.

In questo modo per sapere se un utente ha già votato ad un sondaggio basta vedere se in questa tabella, associato all'ID del sondaggio in esame, esiste l'ID dell'utente in questione.

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Ciao Gianni,

mi sono dimenticato una cosa forse importante, la votazione è quella classica con le stelline, con votazione da 1 a 5, e mi serve ricavare anche la media dei voti ricevuti per mostrare le stelline "semi-accese".

Perciò faccio così:

id_articolo

valore_voto_espresso_dall'utente (da 1 a 5 )

id_utente_votante

poi per trovare il totale di valore_voto_espresso_dall'utente uso SUM e AVG per la media?

Grazie per la pazienza!

risposto 7 anni fa
Gioge
X 0 X

per calcolare la media devi usare AVG:

SELECT AVG(valore_voto_espresso_dall'utente) FROM nome_tabella WHERE id_articolo = ???

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda