Ver Mensaje Individual
  #19 (permalink)  
Antiguo 09/01/2014, 18:42
Avatar de Briss
Briss
 
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Cita:
Iniciado por dashtrash Ver Mensaje
Las queries dentro de bucles siempre hacen daño..

Código PHP:
Ver original
  1. $materias_elegidas = array("0343", "9563", "0435", "0394");
  2. $listaMaterias="('".implode("','",$materias_elegidas)."')";
  3. $consulta = mysqli_query($conexion, "SELECT requisito FROM materias WHERE materia in $listaMaterias and (requisito IS NOT NULL and requisito NOT IN $listaMaterias)");
Si esa consulta devuelve filas, es que hay un error.Modificar la query para que de los nombres de las asignaturas es sencillo, si es necesario.
Saludos!!!! Que tengo que modificar para que visualice el nomnre de las asignaturas... mi codigo esta asi pero no arroja nada aun seleccionando antes
:) desde ya gracias

Código PHP:
<?php
    
include 'globals.php';
    
    
session_start();
    
    
$id_alumno $_SESSION['owner_session_id'];
    
$q_id_alumno quoted($id_alumno);
    
    if(!isset(
$_POST['clases'])){
        
header("Location: show_oferta_academica.php");
    }
    
    
$clases $_POST['clases'];
    
    
encabezado("Comprobar carga");
    
navegacion();
    
    
$conexion solicitarConexion();
    
    
$errores = array();
    
$creditos_totales 0;
    
$horas_teoria_totales 0;
    
$horas_practica_totales 0;
    
    echo 
"<table>
            <tr>
                <td>Clave</td>
                <td>Profesor<br>Materia</td>
                <td>Grupo</td>
                <td>Horas Teoria</td>
                <td>Horas Practica</td>
                <td>Créditos</td>
            </tr>"
;

    foreach(
$clases as $clase){
        
$q_clase quoted($clase);
        
$listaMaterias="('".implode("','"$clases)."')";
$consulta =  "SELECT requisito, NOMBRE FROM materia WHERE id_materia in $listaMaterias and (requisito IS NOT NULL and requisito NOT IN $listaMaterias)";
        
$resultado = @mysql_query($consulta$conexion) or die(mysql_error());
        
                if (
mysql_num_rows($resultado)) {
            
$resultado mysql_fetch_array($consulta);
            
$requisitos[] = $resultado["requisito"];
            
mysql_free_result($resultado);
        }        
    }
     
    
    for (
$i 0$limite count($listasMaterias); $i $limite$i++) {
    
$clave array_search($listasMaterias[$i], $requisitos);

    if (
$clave !== FALSE
     echo 
$requisitos[$clave] . " es un curso requisito de " $materias_elegidas[$i];
        
}
$query_clase "SELECT M.ID_MATERIA, M.CLAVE, M.NOMBRE, M.H_TEORIA, M.H_PRACTICA, M.CREDITOS, (SELECT G.NOMBRE FROM GRUPO AS G WHERE G.ID_GRUPO = C.ID_GRUPO) AS NOMBRE_GRUPO, (SELECT CONCAT(P.TITULO, ' ', P.NOMBRE, ' ', P.P_APELLIDO, ' ', P.S_APELLIDO) FROM PROFESOR AS P WHERE P.ID_PROFESOR = C.ID_PROFESOR) AS NOMBRE_PROFESOR FROM MATERIA M, CLASE C WHERE M.ID_MATERIA = C.ID_MATERIA AND C.ID_CLASE = $q_clase";

$result_clase = @mysql_query($query_clase$conexion) or die(mysql_error());
$filas mysql_num_rows($result_clase);
        if(
$filas != 0){#Algo va realmente mal si las filas son 0
            
$clase mysql_fetch_array($resultado);
            
            echo 
"<tr>
                    <td>"
.$clase['CLAVE']."</td>
                    <td>"
.$clase['NOMBRE']."<br>".$clase['NOMBRE']."</td>
                    
                </tr>"
;
        }else{
            echo 
"<tr><td colspan=6>No seleccionó materias</td></td></tr>";
        }

    echo 
"";
    
    
#Fin de tabla
    
echo "</table>";
    
    
piePagina();
    
?>