ciao
,
sto lavorando dietro ad un sistema per informatizzare dei questionari per la mia ditta e mi ritrovo, da quasi 4 giorni, davanti ad un problema che non riesco a superare.
Il codice qui sotto dovrebbe, in teoria, aggiornare il numero di questionari compilati per ogni domanda.
Ci sono questionari con 19 o 21 domande (controllo quello selezionato tamite una select, in caso si scelga 19 domande lo script da lo stesso errore), il controllo delle risposte si trova dentro gli if e dovrebbero essere corretti.
Lo so che è complicato ma dateci un'occhiata pf (non sapevo cosa servisse quindi ho messo tutto
).
Codice PHP:
for ($i = 0; $i < 21; $i++){
$questionari[$i] = mysql_result($query1, $i, "N°_questionari"); //recupero il numero di questionari compilati
echo $questionari[$i];
}
for ($i = 0; $i < 21; $i++) {
$med = mysql_result($query2, $i, "media");
$valori[$i] = $med * $questionari[$i]; //ripristino i punti totali
}
echo '|';
for ($v = 0; $v < 4; $v++) { //controllo quale radiobutton è selezionato
if ($_POST['r' . $v] == 1) {
$v1 = $v1 + 1;
$valori[$v] = $valori[$v] + 1;
} elseif ($_POST['r' . $v] == 2) {
$v2 = $v2 + 2;
$valori[$v] = $valori[$v] + 2;
} elseif ($_POST['r' . $v] == 3) {
$v3 = $v3 + 3;
$valori[$v] = $valori[$v] + 3;
} elseif ($_POST['r' . $v] == 4) {
$v4 = $v4 + 4;
$valori[$v] = $valori[$v] + 4;
} else {
print "<script type=\"text/javascript\">";
print "alert('Mancano delle risposte')"; //mostra un alert se ci sono delle domande senza risposta
print "</script>";
die(); //interrompo lo script
}
$questionari[$v] = $questionari[$v]+1; $ris[$v] = $valori[$v] / $questionari[$v];
}
for ($y = 0; $y < 4; $y++) { //aggiorno la tabelle con la media per domanda
echo $questionari[$i];
mysql_query("UPDATE $val_media SET media = $ris[$y], N°_questionari = $questionari[$y] WHERE N°_domanda=$y");
}
se eseguo questo codice 3 volte mi stampa:
1: 000000000000000000000|1111
2: 111000000000000000000|2221
3: 221000000000000000000|3321
la cosa che non capisco è perchè va decrescendo quando dovrebbe incrementare tutto univocamente (il punto 3 dovrebbe essere: 222200000000000000000|3333)
potete aiutarmi.
grazie in anticipo per l'aiuto.