ciao,
sto lavorando dietro ad un sistema per informatizzare dei questionari per la mia ditta e mi ritrovo, da quasi 3 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).
Lo so che è complicato ma dateci un'occhiata pls.
$query1 = mysql_query("SELECT N°_questionari FROM $val_media");
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 dei radiobutton 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
quello prima dello '|' è quello che legge dalla tabella (di colore rosso) e quello dopo lo '|' ( evidenziato in verde) si vede quello che dovrebbe inserire nella tabella.
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.
buona serata![]()