Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2010, 21:47
Avatar de JHTKoZ
JHTKoZ
 
Fecha de Ingreso: noviembre-2009
Ubicación: Teocaltiche, Mexico
Mensajes: 67
Antigüedad: 15 años
Puntos: 0
Pregunta 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

Última edición por JHTKoZ; 27/01/2010 a las 22:10