> Faqs > El resultado cambia cuando uso ecuaciones o imágenes
Esta Faq no ha sido aprovada por el equipo de moderadores de DesarrolloWeb.com por no seguir las normas de publicación de preguntas.

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";
      }
    }
  }

?>

Por favor realiza preguntas concretas y concisas que se puedan responder también de manera concreta y concisa. Oriéntalo para que sea genérico y útil para cualquier lector. No podemos resolver un problema específico con un código.

Respuestas

Todavía no se han recibido respuestas a esta pregunta. ¿Quieres enviar la primera?