• User Attivo

    votare un articolo

    ciao a tutti sto costruendo il mio sito e vorrei far votare i miei articoli attraverso un sistema di icone(tipo mediaplayer con le stelline dei brani).
    Avrei pensato di creare una tabella con la colonna id e una con il voto espresso pero non saprei come far visualizzare sul sito la media di tutti i voti espressi magari anche con valori con la virgola(tipo 2 stelline e mezzo).Vi ringrazio per le eventuali risposte.ciao:ciauz:


  • User Attivo

    Ciao Angelbit88,
    potresti ad esempio creare una tabella a 3 campi: id, somma_dei_voti e numero_dei_voti, facendo corrispondere al campo id, l'id del singolo articolo.

    Ogni volta che qualcuno esprime un voto aggiorni il relativo record sommando il voto espresso a quello che trovi in somma_dei_voti e incrementando il numero_dei_voti di un'unità.

    Quando devi visualizzare il voto, con una query estrapoli somma_dei_voti e numero_dei_voti e fai la divisione (**somma_dei_voti/**numero_dei_voti).

    Per produrre il risultato a schermo con una cifra decimale, puoi utilizzare, ad esempio, la funzione php:

    **number_format(risultato_divisione, 1, ',', ' ');

    **in cui il numero in rosso rappresenta il numero di cifre decimali da mostrare.
    Spero di essere stato chiaro! 😄


  • User Attivo

    Grazie ora provo, ma per la grafica esiste qualcosa simile a mediaplayer o e e meglio usare le immagini.Per esempio se il numero finale e tra 2,5 e 3 preparo un immagine poi se il numero e tra 3 e 3,5 faccio visualizzare un altra immagine.:ciauz:
    Ps il campo numero voti lo imposto come auto increment?


  • User Attivo

    Potresti utilizzare le librerie grafiche gd o imagemagick. Sono delle librerie che consentono, mediante php, di creare immagini "al volo", sia utilizzando immagini di sfondo che scrivendo testo e disegnando (entro certi limiti).

    Se non sei pratico di queste librerie (che ti consiglio però di studiare, sono utilissime!), puoi crearti una ventina di immagini (tipo una stella, una stelle e mezzo, due stelle, ecc...), fornire il risultato della media arrotondato al mezzo punto e richiamare per ogni risultato la corrispondente immagine.

    Ad esempio se il risultato della media è 7,5 mi richiamo l'immagine (già costruita) 7_5.gif...


  • User Attivo

    Dove posso trovare qualche manuale(in italiano possibilmente) per imparare ad usare queste librerie e dove le trove, sono gia conprese in PHP 5?


  • User Attivo

    Ciao,
    prticamente quasi tutti i servizi di hosting commerciale hanno gd installato. Per verificare crea un file php con le istruzioni seguenti:
    [php]
    <?php
    phpinfo();
    ?>[/php]
    mettilo online, caricalo dal browser e infine cerca la voce gd.

    Per quanto riguarda il suo uso trovi moltissimo materiale in rete. Ad esempio cerca su questo forum parole del tipo:

    imagecreate
    ImageColorAllocate
    imagepng

    che sono istruzioni tipiche di gd.


  • User Attivo

    Ciao ho creato la tabella e i campi poi ho inserito nrl file php questa istruzione per aggiornare il database ma non funziona.

     $query="REPLACE INTO voto (somma_voti,numero_voti) SET (somma_voti =somma_voti +\"$_POST[voto]\",numero_voti =numero_voti + 1)";
    ```Saresti cosi gentile da dirmi cosa sbaglio forse non dovrei usare replace.
    Per la grafica ho letto qualcosa ma non ho capito se posso con GD riempire quando creo un poligono solo la meta'.:ciauz:

  • User Attivo

    La query $query, l'hai eseguita? Dopo quella riga di testo che definisce la query devi scrivere:

    $result_db = mysql_db_query($db_name,$query,$connessione);

    in cui in $db_name è il nome del database, $query la query che hai scritto sopra e $connessione la connessione che hai stabilito con il db.

    Riprova e se non funziona riporta esattamente l'errore restituito.
    Ciao
    :ciauz:


  • User Attivo

    Ho finito lo script lo posto se serve a qualcuno.
    [PHP]$query = "UPDATE voto SET somma_voti=somma_voti+"$_POST[voto]",numero_voti=numero_voti+1";
    mysql_query($query, $db)
    or die;
    $query = "SELECT somma_voti, numero_voti FROM voto ";
    $risult = mysql_query($query, $db);

    $voto = mysql_fetch_array($risult);

    $ris = $voto['somma_voti']/$voto['numero_voti'];
    $ris = number_format($ris,1);
    echo "$ris";
    };[/PHP]:vaiii:


  • User Attivo

    Ottimo! Sono contento che sia riuscito nell'intento.
    :ciauz: