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

    devo realizzare questo test

    Ciao ragazzi, ho urgenza di creare un pagina con un form tipo questo:
    codice:
    <form method=post action="elabora.php">
    <table>
    <tr>
    	<td>nome</td>
    	<td><input type="text" name="nome"></td>
    </tr>
    <tr>
    	<td>cognome</td>
    	<td><input type="text" name="cognome"></td>
    </tr>
    <tr>
    	<td>email</td>
    	<td><input type="text" name="email"></td>
    </tr>
    <tr>
    	<td>
    
    </td>
    	<td></td>
    </tr>
    <tr>
    	<td width="200">domanda n°1</td>
    	<td>A<input type="radio" name="valore1" value="A">B<input type="radio" name="valore1" value="B">C<input type="radio" name="valore1" value="C"></td>
    </tr>
    <tr>
    	<td>domanda n°2</td>
    	<td>D<input type="radio" name="valore2" value="D">E<input type="radio" name="valore2" value="E">F<input type="radio" name="valore2" value="F"></td>
    </tr>
    <tr>
    	<td>domanda n°3</td>
    	<td>G<input type="radio" name="valore3" value="G">H<input type="radio" name="valore3" value="H">I<input type="radio" name="valore3" value="I"></td>
    </tr>
    </table>
    
    
    
    <input type="submit" value="Invia Dati">
    </form>
    che richiama una pagina php che inserisca i dati in un db (

    volevo fare una cosa tipo

    codice:
    id  | test   |  domanda  | valorea | valoreb | valorec | valore_esatto |
    1     test1   colore ABC       A            B             C               B

    ) e che mi dica a quante domande l'utente abbia risposto giusto... ovviamente diverso dallo script di marta postato su questo forum, dove fa vedere quale sono le risposte sbagliate!!!

    Il risultato deve quindi essere:
    Ciao Pippo, hai risposto esattamente a x domande
    queste a sua volta devono risultare nel db con altri campi associati tipo nome, cognome, email

    Grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    io avevo fatto un quiz con degli array (e non il db)

    comunque puoi estarre i dati dal db, metterli in un array e poi:

    Codice PHP:
    $m=0;
    $n=0
    foreach ($domande as $z) {
        if (
    $z==$_POST[$m]) {$n++;}
        
    $m++;
    }
    if (
    $n==$numero_domande) print "ok";
    else 
    "hai risposto a {$n} domande" 
    ovviamente $_POST[$m] contiene le risposte dell'utente
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  3. #3
    [supersaibal]Originariamente inviato da eraclito
    io avevo fatto un quiz con degli array (e non il db)

    comunque puoi estarre i dati dal db, metterli in un array e poi:

    Codice PHP:
    $m=0;
    $n=0
    foreach ($domande as $z) {
        if (
    $z==$_POST[$m]) {$n++;}
        
    $m++;
    }
    if (
    $n==$numero_domande) print "ok";
    else 
    "hai risposto a {$n} domande" 
    ovviamente $_POST[$m] contiene le risposte dell'utente [/supersaibal]
    Ciao eraclito, hai il codice postato di quello che avevi fatto tu?

  4. #4
    Dunque per l' inserimento dei dati nel db...per quello te la cavi con u nsemplice insert, tipo...
    $db_nome="esempio";
    $nome_tabella="tabella";
    $connessione=@mysql_connect("localhost", "", "")
    or die ("Impossibile stabilire una connessione");
    $db=@mysql_select_db($db_nome, $connessione) or die("Impossibile selezionare il database");

    $sql= "INSERT INTO $nome_tabella (domanda1, domanda2)
    VALUES
    ("$domanda1\", \"$domanda2\)";

    $risultato=@mysql_query($sql, $connessione) or die("Impossibile inserire i dati");

    una volta che i dati sono inseriti puoi interrogare il database e chiedergli con dei cicli if else se il vaolre della domanda1 corrisponde ad u ncerto valore allora imponi alla ipotetica variabile $a di aumentare di un vaolre mediante il comando ++$a, se invece è diverso gl idici di saltare al prossimo controllo...così dop oaver interrogato tutti i valori il vaorle di $a..che inizalmente va impostato su 0 corrisponde alle rispote giuste.

  5. #5
    [supersaibal]Originariamente inviato da keysuke
    Dunque per l' inserimento dei dati nel db...per quello te la cavi con u nsemplice insert, tipo...
    $db_nome="esempio";
    $nome_tabella="tabella";
    $connessione=@mysql_connect("localhost", "", "")
    or die ("Impossibile stabilire una connessione");
    $db=@mysql_select_db($db_nome, $connessione) or die("Impossibile selezionare il database");

    $sql= "INSERT INTO $nome_tabella (domanda1, domanda2)
    VALUES
    ("$domanda1\", \"$domanda2\)";

    $risultato=@mysql_query($sql, $connessione) or die("Impossibile inserire i dati");

    una volta che i dati sono inseriti puoi interrogare il database e chiedergli con dei cicli if else se il vaolre della domanda1 corrisponde ad u ncerto valore allora imponi alla ipotetica variabile $a di aumentare di un vaolre mediante il comando ++$a, se invece è diverso gl idici di saltare al prossimo controllo...così dop oaver interrogato tutti i valori il vaorle di $a..che inizalmente va impostato su 0 corrisponde alle rispote giuste. [/supersaibal]
    Grazie keysuke, mi puoi fare un esempio pratico supponendo che abbia già i dati nel db!!
    Tanks!!!

  6. #6
    Ciao a tutti,
    ho creato un quiz con risposte multiple:
    pagina.html

    codice:
    <table width="250"> 
        <tr> 
            <td width="50" align="center">A<input type="checkbox" name="q19" value="a"></td> 
            <td width="50" align="center">B<input type="checkbox" name="q19" value="b"></td> 
            <td width="50" align="center">C<input type="checkbox" name="q19" value="c"></td> 
            <td width="50" align="center">D<input type="checkbox" name="q19" value="d"></td> 
            <td width="50" align="center">E<input type="checkbox" name="q19" value="e"></td> 
        </tr> 
    </table>
    Pagina con codice php

    Codice PHP:
    nome $_POST['nome']; 
    $cognome $_POST['cognome']; 
    $email $_POST['email']; 
    $numero_domande=33
    $risposte_giuste=0

    if (
    $_POST['q1']== 'm'$risposte_giuste++; 
    if (
    $_POST['q2']== '15')$risposte_giuste++; 
    if (
    $_POST['q3']== '8'$risposte_giuste++; 
    if (
    $_POST['q4']== '6'$risposte_giuste++; 
    if (
    $_POST['q5']== '5'$risposte_giuste++; 
    if (
    $_POST['q6']== '4'$risposte_giuste++; 
    if (
    $_POST['q7']== '1'$risposte_giuste++; 
    if (
    $_POST['q8']== '2'$risposte_giuste++; 
    if (
    $_POST['q9']== 'c'$risposte_giuste++; 
    if (
    $_POST['q10']== 'b'$risposte_giuste++; 
    if (
    $_POST['q11']== 'd'$risposte_giuste++; 
    if (
    $_POST['q12']== 'd'$risposte_giuste++; 
    if (
    $_POST['q13']== 'd'$risposte_giuste++; 
    if (
    $_POST['q14']== 'c'$risposte_giuste++; 
    if (
    $_POST['q15']== 'c'$risposte_giuste++; 
    if (
    $_POST['q16']== 'd'$risposte_giuste++; 
    if (
    $_POST['q17']== 'b'$risposte_giuste++; 
    if (
    $_POST['q18']== 'a'$risposte_giuste++; 
    if (
    $_POST['q19'][0] == 'a' && $_POST['q19'][1] == 'c')$risposte_giuste++; 


    print 
    "$nome, hai risposto esattamente a $risposte_giuste su $numero_domande domande!"
    come faccio a fare un controllo sulla 19 e dirgli che bisogna spuntare solo 2 valori?

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.