Ciao,
è da ormai una settimana che mi trovo bloccato davanti ad un problema che non riesco a risolvere.![]()
Sto informatizzando i questionari per la mia ditta, per fare questo ho scelto di usare php e mysql.
funziona tutto alla perfezione tranne il codice che posto qui sotto.
Il problema sta nel fatto che quando lo eseguo quello che mi salva nel db è errato per 2 motivi:
1. Salva i dati in modo decrescendo (vedi fondo domanda).![]()
2. Se il database ha 4 domande mi salva solo 3 risposte nel db.![]()
Il codice non presenta errori di sintatti e la logica mi sembra corretta, allora dove sbaglio?Codice PHP:$query1 = mysql_query("SELECT N°_questionari FROM medieXdomanda");
for ($i = 0; $i < 4; $i++) {
$questionari[$i] = mysql_result($query1, $i, "N°_questionari"); //recupero il numero di questionari compilati per domanda
echo $questionari[$i];
}
for ($i = 0; $i < 4; $i++) {
$med = mysql_result($query2, $i, "media"); //recupero la media ri risposte per domanda
$valori[$i] = $med * $questionari[$i];
}
echo '|';
for ($v = 0; $v < 4; $v++) {
if ($_POST['r' . $v] == 1) { //'r' concatenato con un numero è il nome della serie di radiobutton per domanda (domanda 1 -> r0,...)
$v1 = $v1 + 1;
$valori[$v] = $valori[$v] + 1;
} else if ($_POST['r' . $v] == 2) {
$v2 = $v2 + 1;
$valori[$v] = $valori[$v] + 2;
} else if ($_POST['r' . $v] == 3) {
$v3 = $v3 + 1;
$valori[$v] = $valori[$v] + 3;
} else if ($_POST['r' . $v] == 4) {
$v4 = $v4 + 1;
$valori[$v] = $valori[$v] + 4;
} else {
$v0 = $v0 + 1;
$valori[$v] = $valori[$v] + 0;
}
$questionari[$v] = $questionari[$v] + 1;
$ris[$v] = $valori[$v] / $questionari[$v]; //calcolo la media
}
for ($y = 0; $y < 4; $y++) {
echo $questionari[$y];
mysql_query("UPDATE $val_media SET media = $ris[$y], N°_questionari = $questionari[$y] WHERE N°_domanda=$y");
}
![]()
Esempio di risultato se compilo un questionario:
1: 000|1111
2: 111|2221
3: 221|3321
4: 321|4321
la cosa che non capisco è perchè va decrescendo quando dovrebbe incrementare tutto univocamente (il punto 4 dovrebbe essere: 333300000000000000000|4444)
potete aiutarmi?
Se non capite qualche cosa rispiego.
Grazie in anticipo![]()
![]()

,
Rispondi quotando