Domande a risposta multipla con PHP

di il
4 risposte

Domande a risposta multipla con PHP

Ciao Ragazzi,

ho un problema che da 2 giorni mi sta mandando fuori di testa.
Ho creato uno script che estrae da un Db delle domande e 3 risposte multiple associate alla stessa domanda, ma ho bisogno che la domanda mi appaia una sola volta diversamente da come accade adesso che mi cicla tante domande quante sono le risposte.

Ecco il codice
<?php 
$query_test = mysql_query("SELECT learning_testtrack. *, learning_testtrack_quest. *, learning_testquest. *, learning_testquestanswer. * FROM learning_testtrack 
INNER JOIN learning_testtrack_quest ON learning_testtrack.idTrack = learning_testtrack_quest.idTrack 
INNER JOIN learning_testquest ON learning_testtrack_quest.idQuest = learning_testquest.idQuest 
INNER JOIN learning_testquestanswer ON learning_testquest.idQUest = learning_testquestanswer.idQuest 
WHERE learning_testtrack.idUser = '" . $dati [5] . "' AND learning_testtrack.idTest = 2");

while ($risultato = mysql_fetch_array($query_test)) {?>

<table border="1" width="80%">
<tr><td><?php echo $risultato[24];?></td><td><?php echo $risultato[34];?></td><td></td><td><?php echo $risultato [11] ?></td></tr>
</table>
<p></p>
<?php
} 
?>
$risultato[24] mostra le domande
$risultato[34] mostra le risposte

Per arrivare ad associare domande e risposte ho dovuto necessariamente creare questo genere di query dove

learning_testtrack. * contiene gli id delle traccia del quiz fornito e l'id dell'utente
learning_testtrack_quest. * contiene gli id delle traccia del quiz fornito e l'id della domanda
learning_testquest. * contiene gli id delle domande e il testo delle domande
learning_testquestanswer. * contiene gli id delle domande e il testo delle risposte

Attualmente mi viene fuori così:

A - 1
A - 2
A - 3
io invece vorrei
A 1
2
3

Qualcuno di voi ha un'idea?

Grazie a chiunque mi dia una mano

4 Risposte

  • Re: Domande a risposta multipla con PHP

    Il modo più semplice è selezionare prima tutte le domande, ciclare su di esse e per ogni domanda selezionare le relative risposte.

    ciao
  • Re: Domande a risposta multipla con PHP

    Scusa ma non mi è chiaro.
    In pratica dici di fare quindi due query separate, la prima con il distinct e la seconda così com'è ora?
  • Re: Domande a risposta multipla con PHP

    Fai una prima query con il join tra le tabelle learning_testtrack e learning_testtrack_quest per selezionare tutte le domande relative a un certo test.
    Cicli sul result set.
    All'interno del ciclo, fai una seconda select sulla sola tabella delle risposte, per selezionare tutte le risposte relative ad una certa domanda (sfruttanto l'ID della domanda ricavato con la prima query).

    ciao.
  • Re: Domande a risposta multipla con PHP

    Ottima idea anche se non volevo gestire due query per evitare di spendere troppe risorse.
    Comunque grazie per la dritta. Ci provo subito
Devi accedere o registrarti per scrivere nel forum
4 risposte