Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Conteggio risposte

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Ho messo in atto il tuo suggerimento Alhazred.

    Mi farò carico di creare tante query quante sono le domande, all'inizio ho detto che erano 3 perché mi piace partire con pochi elementi nella programmazione e poi espandermi, ma in realtà sono una 30ina!

    quindi
    Codice PHP:
    $query_01  "SELECT risposta_01, COUNT(*) AS numero FROM questionario GROUP BY risposta_01 ORDER BY numero DESC";
    $result_01 mysql_query($query_01); 
    Codice PHP:
    //sai che ritornerà sicuramente 2 record, uno per i si e uno per i no
    $row1 mysql_fetch_assoc($result_01); //carica la prima riga
    $row2 mysql_fetch_assoc($result_01); //carica la seconda riga

    if ( $row1['risposta_01'] == 'Si' //sono i si
    {
        
    //fai quello che devi fare con il numero di si
        //il numero di si è $row1['numero']
        
    echo $row1['risposta_01'] . '<br />' '<img src="immagini/barra_verde.png" width="' $row1['numero']*10 '" height="16" /> ' $row1['numero'] . '<br /><br />';
    }
    else 
    //sono i no
    {
        
    //fai quello che devi fare con in no
        //il numero di no è $row1['numero']
        
    echo $row1['risposta_01'] . '<br />' '<img src="immagini/barra_verde.png" width="' $row1['numero']*10 '" height="16" /> ' $row1['numero'] . '<br /><br />';
    }

    //devi ripeetere la stessa cosa, stavolta per $row2
    if ( $row2['risposta_01'] == 'Si' //sono i si
    {
        
    //fai quello che devi fare con il numero di si
        //il numero di si è $row2['numero']
        
    echo $row2['risposta_01'] . '<br />' '<img src="immagini/barra_rossa.png" width="' $row2['numero']*10 '" height="16" /> ' $row2['numero'] . '<br /><br />';
    }
    else 
    //sono i no
    {
        
    //fai quello che devi fare con in no
        //il numero di no è $row2['numero']
        
    echo $row2['risposta_01'] . '<br />' '<img src="immagini/barra_rossa.png" width="' $row2['numero']*10 '" height="16" /> ' $row2['numero'] . '<br /><br />';

    tenendo conto che alcune domande hanno anche 5 risposte e non di solo Si o No, ma proprio risposte estese, pensate che possa applicare questa tecnica oppure vale solo con 2
    risposte possibili?

    Mi devo inventare qualche cosa anche per la lunghezza delle barre, non vorrei che con l'aumento delle risposte mi spagini tutto con una barra orizzontale supergigante!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Quote Originariamente inviata da harry80 Visualizza il messaggio
    ...
    tenendo conto che alcune domande hanno anche 5 risposte e non di solo Si o No, ma proprio risposte estese, pensate che possa applicare questa tecnica oppure vale solo con 2 risposte possibili?
    Con risposte estese non funzionerebbe, nell'if dovresti mettere il testo della risposta, che è improponibile.

    Dovresti invece crearti una tabella "Risposte" fatta così:
    id_domanda - codice_risposta - testo_risposta

    la primary key sarà la coppia "codice_risposta, id_domanda"

    in modo da inserire righe fatte così:
    1 - a - si
    1 - b - no
    2 - a - pippo
    2 - b - topolino
    2 - c - paperino
    ...

    quindi alla domanda 1 si può rispondere si o no, alla domanda 2 si può rispondere pippo, topolino o paperino...

    Nella tabella questionario, nelle colonne delle risposte, invece delle risposte per esteso ci metti il codice della risposta data e il controllo negli if lo farai appunto col codice della risposta, quindi a, b, c...

    Mi devo inventare qualche cosa anche per la lunghezza delle barre, non vorrei che con l'aumento delle risposte mi spagini tutto con una barra orizzontale supergigante!
    Su questo mi sa che c'è poco da inventarsi, con 30 domande, se le vuoi mettere una di fianco all'altra, non riuscirai mai a stare nei margini dello schermo.

    Un consiglio non riguardante il problema: usa le istruzioni mysqli_ oppure PDO, non usare mysql_, presto non funzioneranno più, sui server più aggiornati è già così.
    Ultima modifica di Alhazred; 02-03-2014 a 13:40

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 © 2026 vBulletin Solutions, Inc. All rights reserved.