Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [php-mysql] Struttura voti e ordinamento

    Nel db ho una tabella dove ci sono tot record, e un altra tabella che contiene la struttura dei voti per questi record, in questo modo:

    id - voto1 - voto2 - voto3 - voto4 - voto5 - voto6 - nvoti

    Credo si capiscano a cosa corrispondono le varie voci.

    Nell'elencare i vari record della prima tabella avrei l'esigenza di poter scegliere l'ordinamento in base ai vari voti, cioè per esempio in ordine decrescente del voto3, e così via.

    Per fare la media del voto finale di ogni record utilizzo php:

    codice:
    $sommavoti=$arr_voti['nvoti']; //$arr_voti è il risultato di una query mysql
    settype($sommavoti,"integer");
    $totvoto1=$arr_voti['voto1'];
    $totvoto2=$arr_voti['voto2'];
    $totvoto3=$arr_voti['voto3'];
    $totvoto4=$arr_voti['voto4'];
    $totvoto5=$arr_voti['voto5'];
    $totvoto6=$arr_voti['voto6'];
    $mediavoto1=@round($totvoto1/$sommavoti);
    $mediavoto2=@round($totvoto2/$sommavoti);
    $mediavoto3=@round($totvoto3/$sommavoti);
    $mediavoto4=@round($totvoto4/$sommavoti);
    $mediavoto5=@round($totvoto5/$sommavoti);
    $mediavoto6=@round($totvoto6/$sommavoti);
    $totmediavoti=$mediavoto1 + $mediavoto2 + $mediavoto3 + $mediavoto4 + $mediavoto5 + $mediavoto6;
    $valutazione=@round(($totmediavoti/$sommavoti)/6);
    Quindi di logica per fare quello che chiedo dovrei effettuare tutto sto popò di roba nella query al db.... ma non credo sia possibile e/o sia la soluzione migliore...

    Chi mi illumina?

    Grazie


    Ciaoooooo!!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  2. #2
    UP


    Ciaoooooo!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  3. #3
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    prova così:
    codice:
    SELECT
    ROUND(((ROUND(voto1/nvoti,0)+
    ROUND(voto2/nvoti,0)+
    ROUND(voto3/nvoti,0)+
    ROUND(voto4/nvoti,0)+
    ROUND(voto5/nvoti,0)+
    ROUND(voto6/nvoti,0))/nvoti)/6,0) AS totale
    FROM nome_tabella;

    think simple think ringo

  4. #4
    Grazie! E' già un passo avanti... ma non capisco come col tuo esempio è possibile gestirmi la selezione di una media in particolare, per esempio io vorrei l'ordinamento in base alla media del campo 'voto3'...

    Ovviamente una volta capito il sistema andrò a scrivere tante query (una diversa dall'altra) quanti sono i voti.


    Ciaoooooo!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  5. #5
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    quella query esegue il codice php che hai scritto direttamente da mySQL, quindi dovrebbe ritornarti il valore della variabile valutazione.

    per media del campo "voto3" cosa intendi?
    think simple think ringo

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    forse intendi una cosa di questo tipo:
    codice:
    SELECT
    ROUND(voto1/nvoti,0) AS mvoto1,
    ROUND(voto2/nvoti,0) AS mvoto2,
    ROUND(voto3/nvoti,0) AS mvoto3,
    ROUND(voto4/nvoti,0) AS mvoto4,
    ROUND(voto5/nvoti,0) AS mvoto5,
    ROUND(voto6/nvoti,0) AS mvoto6
    FROM tabella
    ORDER BY mvoto3 ASC
    think simple think ringo

  7. #7
    Cazz, si si hai ragione, sto fuso io.
    Allora io avevo già provveduto a farmi l'ordinamento in base alla media totale (cioè quella che ho scritto su) tramite un campo aggiuntivo nella tabella dei record (non quella dei voti).

    Io praticamente dovrei ottenere delle query che mi ordini in base ai voti ottenuti nelle varie voci, per esempio il "voto3" corrisponde nella pagina (per esempio) a Bellezza, il "voto2" a Prezzo, ecc, così da poter realizzare tanti link quante sono queste voci (quindi "ordina per Bellezza", "ordina per Prezzo" ecc)




    Ciaoooooo!!!!!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  8. #8
    VVoVe:
    Se è quello che intendevo io.....



    Provo e ti faccio sapere.

    GRAZZZZZZ


    Ciaooooo!!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  9. #9
    GRANDE!
    Devo solo perfezionarlo un po' (qualche IF per quando qualche campo è zero), ma è perfetto!

    Grazie mille!


    Ciaoooooo!!!!!!!!!!!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.