Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Promedio Examen (http://www.forosdelweb.com/f18/promedio-examen-773082/)

JHTKoZ 27/01/2010 20:47

Promedio Examen
 
Hola, bueno tengo esta sección del formulario del cual deseo sacar promedio:

Código PHP:

$id=1;
while (
$row3 mysql_fetch_array($result3))
{
    
$id++;
    echo 
'<TR height="150"><TD><P>' $row3['Numero'] . '.-' $row3['Pregunta'] . '</P></TD>';
        echo 
'<td><P><INPUT type="radio" name="op'.$id.'" value="1"> 1. ' .     $row3['Opcion1'] . '</P><P><INPUT type="radio" name="op'.$id.'" value="2"> 2. ' $row3['Opcion2'] . '</P><P><INPUT type="radio" name="op'.$id.'" value="3"> 3. ' $row3['Opcion3'] . '</P><P><INPUT type="radio" name="op'.$id.'" value="4"> 4. ' $row3['Opcion4'] . '</P></td></tr>';


Las preguntas las saco de mi base de datos, lo que hace es que cada pregunta tiene 4 opciones, y pues a cada vuelta, opn va incrementando su valor en n, así a cada vuelta tendré el name de op distinto para cada grupo de 4 opciones por pregunta. Hasta ahí todo funciona, el problema es en el archivo donde se saca la calificación:

Código PHP:

include "bdconection.php"//aqui mando llamar a la base de datos, aqui todo bien
$link conectarse();
$idExamen $_POST['idExamen'];//se postea de el formulario anterior
$id $_POST['id'];

$suma 0;
for(
$i 1$i == $id$i++) //id es el número de preguntas
{
    if (
$_POST['op'.$i] != //pregunta si la opción trae valor, si está en blanco va a la sigueinte pregunta sin incrementar $suma
    
{
        
$sql "SELECT * FROM preguntas WHERE idExamen = '$idExamen' AND Numero = '$i'";//de la tabla preguntas, seleccionara donde sea el idExamen y donde el campo Numero sea igual a el numero de pregunta que esta revisando
        
$result mysql_query($sql) or die ("La siguiente consulta contiene algún error:<br>nSQL: <b>$sql</b>");
        
$row mysql_fetch_array($result);
        if (
$row['Respuesta'] == $_POST['op'.$i])//si lo que arrojo de respuesta (que esta guardado en un campo) es igual a el valor de op, va a incrementar suma, ya que la respuesta es correcta, si no no lo cuenta
        
{
            
$suma += 1;
        }
    }
}
    echo((
$suma*100)/$id); 

Eso ultimo no me corre, siempre imprime "0" o sea que no esta revisando ninguna pregunta, que podría ser?

P.D. Siempre me imprimirá "0" aunque intente revisar el examen con las respuestas correctas de acuerdo a mi tabla mysql

luis010182 27/01/2010 21:36

Respuesta: Promedio Examen
 
Estas estas incrementado $id antes de usarlo. Y capaz que te revisa pero por esto no te coincien las respuestas.
Código PHP:

$id=1;
while (
$row3 mysql_fetch_array($result3))
{
    echo 
'<TR height="150"><TD><P>' $row3['Numero'] . '.-' $row3['Pregunta'] . '</P></TD>';
        echo 
'<td><P><INPUT type="radio" name="op'.$id.'" value="1"> 1. ' .     $row3['Opcion1'] . '</P><P><INPUT type="radio" name="op'.$id.'" value="2"> 2. ' $row3['Opcion2'] . '</P><P><INPUT type="radio" name="op'.$id.'" value="3"> 3. ' $row3['Opcion3'] . '</P><P><INPUT type="radio" name="op'.$id.'" value="4"> 4. ' $row3['Opcion4'] . '</P></td></tr>';
    
$id++;


Osea que en vez de que $i empiece en 1 empieza en 2

Otra cosa es que me parece que si vien estas recorriendo el nro de preguntas me parece que te falta recorre en nro de opciones de repuesta que tiene cada una.

Espero que te sirva.

JHTKoZ 27/01/2010 21:37

Respuesta: Promedio Examen
 
Muchas gracias, eso era :P


La zona horaria es GMT -6. Ahora son las 10:34.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2014, Jelsoft Enterprises Ltd.

SEO by vBSEO 3.3.2