• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Creare un sistema di votazione in PHP e MySQL

Kaito

Utente Strepitoso
Autore del topic
16 Febbraio 2011
4.511
47
Miglior risposta
0
Salve, oggi vedremo come creare un semplice sistema di votazione sfruttando il php e un database mysql.

Iniziamo subito connettendoci al database, quindi scriveremo:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Come abbiamo visto, abbiamo usato una sola riga per selezionare e connetterci al database invece che 5-6, vediamo cosa dobbiamo sostituire:

  1. NOME DEL DATABASE col nome del nostro database, se usate altervista e il vostro sito ad esempio è pippo.altervista.org, il vostro database sarà my_pippo, se invece utilizzare un hosting troverete il nome del database e tutti gli altri dati nel pannello di controllo del sito;
  2. HOSTNAME è l' host su cui risiede il vostro db, se usate altervista è localhost, se usate un hosting lo troverete nel pannello di controllo del sito, solitamente è rappresentato da un IP l' hostname su hosting;
  3. USERNAME è l' username del database, se usate altervista userete il nome del vostro sito come username, quindi se avete pippo.altervista.org sarà pippo, se usate un hosting lo troverete nel pannello di controllo del sito;
  4. PASSWORD è la password per accedere al database, se usate altervista potete lasciare vuoto questo campo,se usate un hosting va riempito per forza e troverete questo dato nel pannello di controllo del sito;

Ora andiamo a creare la tabella contenente i voti:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Come possiamo notare abbiamo aggiunto accanto a CREATE TABLE la parte IF NOT EXISTS, quindi verrà creata solo se la tabella non esiste, onde evitare problemi. Abbiamo creato due campi, uno contenente l' IP del visitatore che voterà e uno col voto scelto.

Ora troviamo l' IP del visitatore e facciamo subito un controllo col database.

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Analizzando ciò che abbiamo scritto, noteremo che $ip , tramite $_SERVER['REMOTE_ADDR'] contiene l' IP del votante, mentre la if a seguire controlla quante righe (mysql_num_rows) della tabella voti (FROM voti) esistono dove sotto al campo ip (WHERE ip) è uguale all' ip del visitatore. Quindi, se il numero di righe è uguale a 0, ovvero non c'è nessuna riga..

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Stampiamo a video il form per votare. echo <<<EOT contenuto EOT; è un modo migliore per scrivere dell' HTML in PHP, in questo modo non avremo problemi di apici.
Il form è strutturato in modo che appaiano 5 input radio (input a cerchio) che valgono 1 2 3 4 5, ovvero i nostri voti e dopo c'è un input submit alla cui pressione vengono inviati i dati al PHP, quindi..

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Se è pieno $_POST['voto'], ovvero la votazione $voto prende il suo valore ($voto = (isset($_POST['voto'])) ), altrimenti ( ? ) prende il valore di null ($_POST['voto'] : null; ).

Quindi se stato premuto il submit ( && isset($_POST['votato'])) { ) e il valore di $_POST['voto'] non è null ( if(!is_null($voto) ) , inseriamo nel database l' ip e il voto scelto e lo rimandiamo alla pagina corrente.

Se invece il submit è premuto ma il campo è vuoto..

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Gli diciamo che deve scegliere un voto per proseguire.

Tornando alla if principale del numero di righe, abbiamo visto se il numero di righe 0, ma se invece è diverso da 0 e quindi l' ip è già presente..

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Selezioniamo la somma dei voti a cui daremo il nome voto_totale ( SELECT SUM(voto) as voto_totale ) dalla tabella voti ( FROM voti ) e lo assegneremo alla variabile $voti, poi..

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Contiamo quanti voti ci sono che chiameremo num_voti ( SELECT COUNT(voto) as num_voti ) e valorizziamo $num_voti con questo risultato ( $num_voti = $select_num['num_voti']; )..

Con una semplice operazione matematica stabiliamo la media dei voti

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

E stampiamo a video i dati raccolti..

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Quindi il codice completo finale sarà:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Spero vi sia stato d' aiuto anche la spiegazione dei codici ^^
 
Riferimento: Creare un sistema di votazione in PHP e MySQL

Molto ma molto dettagliata, ti ringrazierei se faresti una guida sulla spiegazione del PHP come questo, mi è serviva a molto ^^
 
Riferimento: Creare un sistema di votazione in PHP e MySQL

Grazie,Mi è servita molto,Comunque ottima guida,Ben scritta ;)