Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Aiuto Questionario

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    6

    [PHP] Problema calcolo punteggio in un questionario

    Salve ragazzi, sono Claudio e sono nuovo del forum.
    Mi sto imbattendo in un problema che non riesco a risolvere con PHP. Sto creando un questionario online. Praticamente ho delle domande memorizzate all'interno del database, con le relative risposte e i punti per ogni risposta. All'interno della pagina richiamo con un ciclo for un numero prestabilito di domande dal database e visualizzo il tutto in un form, utilizzando le "radio" per la scelta della risposta. Il mio problema è il seguente:
    essendo che per ogni risposta data il valore deve essere aggiunto alla variabile $punteggio, come faccio ad aggiornare la variabile essendo che il form si trova all'interno del ciclo for?
    Posto il codice della pagina, sperando che qualcuno possa aiutarmi:
    Codice PHP:
    $sql_query=mysql_query("SELECT * FROM esame WHERE 1",$db); 
    $query mysql_query("SELECT * FROM domande WHERE Argomento=1 ORDER by rand()"$db); 
    $quanti mysql_num_rows($query); 
    $esame mysql_num_rows($sql_query); 
    if (
    $quanti == and $esame == 0
     echo 
    "Nessun record!";  
    else 

    $record=mysql_fetch_row($sql_query); 
    $num_domande=$record[1]; 
    $data=$record[4]; 
    $titolo=$record[5]; 
    echo 
    $titolo
    echo 
    "

    "
    $data
    $num=0
    $punteggio=0
    for(
    $x=0$x<$num_domande$x++) 

    $rs mysql_fetch_row($query); 
    $Domanda $rs[1]; 
    $Risposta1$rs[2];
     
    $Valore1=$rs[3]; 
    $Risposta2=$rs[4]; 
    $Valore2=$rs[5]; 
    $Risposta3=$rs[6]; 
    $Valore3=$rs[7]; 
    echo 
    '<form action="#" method="get" target="_self">
     ' 
    .++$num .'. ' $Domanda '

     
    <input name="risposta" id="risposta" title="Risposta 1" type="radio" value="'
    .$Valore1.'">'.$Risposta1.'

     
    <input name="risposta" id="risposta" title="Risposta 2" type="radio" value="'
    .$Valore2.'">'.$Risposta2.'

     
    <input name="risposta" id="risposta" title="Risposta 3" type="radio" value="'
    .$Valore3.'">'.$Risposta3.'

    '

    $punteggio += $_REQUEST["risposta"]; 
    echo 
    '<input type="hidden" name="XXX" id="XXX"value="'.$punteggio.'"> 


    <input name="Invia" type="submit" value="Invia"/></form>'
    ;
     } 

    Dov'è il problema???

  2. #2
    se punteggio e' il valore che andrai a scrivere nella tabella esame, allora penso che devi modificare il form inserendo in action la url di una nuova pagina.
    Nella nuova pagina leggerai la variabile $punteggio, con $_get e dovrai inserire l'istruzione "update esame set punteggio = $punteggio"
    (penso che anche la visualizzazione della risposta per correttezza dovrebbe essere fatta in questa nuova pagina)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    perchè usare get? piuttosto usa post
    sometimes it's just like teaching pigs how to fly

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    6
    Originariamente inviato da nickcv
    perchè usare get? piuttosto usa post
    Si ok, non si tratta di disputa tra GET e POST, il problema è aggiornare il valore di $punteggio ad ogni iterazione del ciclo for.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    io punterei su while...quando feci il quiz per mio sito mi incasinò la vita poi ho risolto con while...
    il mio quiz prevede di pescare 10 domande in modo casuale però l'analisi dei risultati rimanda in un'altra pagina
    quindi in quella pagina verifico se la risposta è esatta e mi aggiunge come fai tu il punto della domanda nella variabile punteggio

    un'altra cosa tu fai un ciclo for...forse non me ne sto accorgendo io però la variabile $x non la vedo da nessuna parte dentro la condizione del for...domanda: che senso ha metterlo allora?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    Io onestamente userei un solo form e nel for genererei i campi del form... Non serve a nulla avere N form
    sometimes it's just like teaching pigs how to fly

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    6
    Ma facendo un solo form perdo l'utilità dello script, cioè quella di determinare il numero di domande di volta in volta a seconda dell'esame.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    non ancora capito che cosa centra x del ciclo for se poi non la richiami all'interno della condizione

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    cerchiamo di capire l'intento della tua domanda

    tu hai tante domande?
    ogni domanda ha 3 risposte ciascuna delle quali ha un valore differente..
    ci spieghi come è stutturata la tabella del db?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    6
    La tabella è formata da un campo id, da un campo per la domanda, da tre campi per le risposte, tre campi per i valori ed un campo per l'argomento.
    Tuttavia le domande vengono richiamate in modo casuale all'interno della tabella esame, che contiene un campo per l'argomento, uno per il titolo del questionario, uno per il numero di domande, uno per la data. Infine sarà chiesto al candidato di inserire il proprio nome e numero di matricola e i risultati saranno memorizzati nella tabella risaltati che conterrà: l'id dello studente, il nome e cognome, la matricola, il titolo del questionario, l'argomento del questionario, la data in cui è stato effettuato ed ovviamente il risultato.

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