El resultado cambia cuando uso ecuaciones o imágenes
Necesito ayuda con el siguiente código. Este fue descargado de internet, estaba diseñado para realizar encuestas, con ciertas modificaciones logre hacer preguntas al azar y que las posibles repuestas cambiaran de orden. Cuando hago preguntas como: La vaca es, cuantos días tiene la semana, en el año bisiesto febrero tiene 29 días, al responder correctamente se obtiene un puntaje de cinco, pero cuando escribo expresiones matemáticas como 2/5 + 7/8, 4/5 – 8/9 -9/5 o coloco imágenes, en las repuestas solo me dice que hay una o dos correctas.
Còdigo que muestra las preguntas
<?php
$user = (isset($_POST['user'])?$_POST['user']:NULL);
$pass = (isset($_POST['pss'])?$_POST['pss']:NULL);
$numPregs = 5; // asegurarse q la bd tenga >=5 preguntas
$conexion = mysql_connect("localhost","root","");
if(!$conexion){
echo "<p>Error: No se puede conectar al servidor</p>\n";
}
else{
$bd = mysql_select_db("imagen",$conexion);
if(!$bd){
echo "<p>Error: No se pudo seleccionar la bd</p>\n";
}
else if($user==null || $pass==null){
echo "<p>Error: Datos de login nulos<br>\n";
echo "<a href=\"Index.php\"> Regresar</a> </p>\n";
}
else{
$nombre = mysql_query("select nombre from usuarios where matricula='$user' and password='$pass'",$conexion);
$presento = mysql_query("select presento from usuarios where matricula='$user' and password='$pass'",$conexion);
if(mysql_num_rows($nombre)<=0){
echo "<p>Autentificacion incorrecta<br>\n";
echo "<a href=\"Index.php\"> Regresar</a> </p>\n";
}
else if(mysql_result($presento,0,'presento')==4){
echo "<p>El alumno ".mysql_result($nombre,0,'nombre')." matricula $user ya presento este examen<br>\n";
echo "<a href=\"Index.php\"> Regresar</a> </p>\n";
}
else{
mysql_set_charset("utf8");
echo "<h2> Examen de suma ó diferencia de números fraccionarios</h2>\n";
echo "<p>Bienvenido alumno ".mysql_result($nombre,0,'nombre')."</p>\n";
// seleccionar las preguntas aleatoriamente
$contarpreguntas = mysql_query("select count(idp) as 'num' from preguntas",$conexion);
$pregsExistentes = mysql_result($contarpreguntas,0,'num');
for($r=0;$r<$numPregs;$r++) $vector[$r]=0;
for($r=0;$r<$numPregs;$r++){
$alea=rand(1,$pregsExistentes);
$bandera=true;
for($f=0;$f<$r;$f++)
if($vector[$f]==$alea){
$bandera=false;
break;
}
if(!$bandera){ $r--; continue; }
$vector[$r]=$alea;
}
// cargar las preguntas
echo '<form action="califica.php" method="post">'."\n";
for($r=0;$r<$numPregs;$r++){
$pregActu = mysql_query("select preguntas from preguntas where idp='$vector[$r]'",$conexion);
$txtPregActu = mysql_result($pregActu,0,'preguntas');
echo "<p>\n";
echo "".($r+1).") ".$txtPregActu;
$consOps = mysql_query("select idr from corresponde where idp='$vector[$r]' ORDER BY RAND() limit 4 ",$conexion);
$numResp = mysql_num_rows($consOps);
echo "\n<br>";
echo ' <input type="hidden" name="preg'.($r+1).'" value="'.$vector[$r].'">'."\n";
for($hui=0;$hui<$numResp;$hui++){
$res =mysql_result($consOps,$hui,'idr');
$consResp = mysql_query("select respuesta from respuestas where idr='" . $res . "' ",$conexion);
$valor= mysql_result($consResp,0,'respuesta');
echo '<input type="radio" name="'.$r.'" value="'.$valor.'">'.$valor."<br>\n";
}
echo "</p>\n";
}
echo '<input type="hidden" name="mat" value="'.$user.'">'."\n";
echo '<input type="submit" value="Calificar">'."\n";
echo '</form>'."\n";
mysql_Close($conexion);
}
}
}
?>
Còdigo que muestra los resultados
<?php
// $numPregs = 10; // asegurarse q la bd tenga >=10 preguntas
// diseño estatico para solo revisar diez preguntas
$preg[0] = (isset($_POST['preg1'])?$_POST['preg1']:NULL);
$preg[] = (isset($_POST['preg2'])?$_POST['preg2']:NULL);
$preg[] = (isset($_POST['preg3'])?$_POST['preg3']:NULL);
$preg[] = (isset($_POST['preg4'])?$_POST['preg4']:NULL);
$preg[] = (isset($_POST['preg5'])?$_POST['preg5']:NULL);
$respDada[0] = (isset($_POST['0'])?$_POST['0']:NULL);
$respDada[] = (isset($_POST['1'])?$_POST['1']:NULL);
$respDada[] = (isset($_POST['2'])?$_POST['2']:NULL);
$respDada[] = (isset($_POST['3'])?$_POST['3']:NULL);
$respDada[] = (isset($_POST['4'])?$_POST['4']:NULL);
$matricula = (isset($_POST['mat'])?$_POST['mat']:NULL);
if(!$preg||!$respDada||!$matricula){
echo "<p>Acceso invalido</p>";
}
else{
$conexion = mysql_connect("localhost","root","");
if(!$conexion){
echo "<p>Error: No se puede conectar al servidor<br>\n";
echo "<a href=\"Index.php\"> Regresar</a> </p>\n";
}
else{
$bd = mysql_select_db("imagen",$conexion);
if(!$bd){
echo "<p>Error: No se pudo seleccionar la bd<br>\n";
echo "<a href=\"Index.php\">Regresar</a> </p>\n";
}
else{
$calif=0;
$consulta = mysql_query("select nombre from usuarios where matricula='$matricula'",$conexion);
echo "<h2> Calificacion </h2>\n";
echo "<p> Alumno ".mysql_result($consulta,0,'nombre')." matricula $matricula</p>\n";
for($cju=0;$cju<sizeof($preg);$cju++)
{
$consulta = mysql_query("select idr from corresponde where idp='$preg[$cju] and sipi=1'",$conexion);
$idres = mysql_result($consulta,0,'idr');
$consulta = mysql_query("select respuesta from respuestas where idr='$idres'",$conexion);
$respuestidirijilla = mysql_result($consulta,0,'respuesta');
if($respDada[$cju]==$respuestidirijilla) $calif+=1;
}
$consulta1 = mysql_query("select presento from usuarios where matricula='$matricula'",$conexion);
$entradas = mysql_result($consulta1,0,'presento');
mysql_query("update usuarios set calif$entradas = '$calif', presento = presento + 1 where matricula='$matricula'",$conexion);
mysql_query("update usuarios set total = (calif0 + calif1 + calif2 + calif3)/presento where matricula='$matricula'",$conexion);
$consulta1 = mysql_query("select presento from usuarios where matricula='$matricula'",$conexion);
$entradas = mysql_result($consulta1,0,'presento');
echo "<p> Has entrado $entradas veces</p>\n";
$consulta1 = mysql_query("select total from usuarios where matricula='$matricula'",$conexion);
$entradas = mysql_result($consulta1,0,'total');
echo "<p>Ha obtenido una calificacion promedio de $entradas que es ".($entradas>=3?"Aprobatoria":"Reprobatoria")." </p>";
mysql_Close($conexion);
echo "<p><a href=\"Index.php\"> Regresar al homie ese</a> </p>\n";
}
}
}
?>
Respuestas
Todavía no se han recibido respuestas a esta pregunta. ¿Quieres enviar la primera?