Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/07/2011, 09:06
Avatar de fekaa11
fekaa11
 
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años
Puntos: 34
Mensaje Respuesta: Duda con consulta MYSQL

Hay un problema.
El campo materia hay veces que está nulo. En ese caso quiero que me muestre los alumnos pero en los otros campos de la tabla quiero que se muestre como nulo (como que no hay datos seteados). Imagenes para entender mejor:

1- Como se ve aquí no está completo el campo "materia", ya que el profesor todavía no ha ingresado datos sobre dicho alumno.



2- En la segunda imagen se puede observar como el profesor ha insertado los datos sobre dicho alumno, y se vería asi:



3- En la tercera imagen se vé como se muestra la tabla con la consulta que me has asignado.



4- En la cuarta imagen se puede observar como quiero que sean los resultados devueltos.



El problema surge cuando cambio mi código para que me imprime tal cual los valores de la consulta. Me devuelve todos los alumnos del grupo X, pero en todas sus materias cuando me tendría que devolver la que yo designe unicamente. Cuando cambio el WHERE materias='INGLES' (por ejemplo) no me devuelve ningún nombre (Ya que no hay ningún alumno con sus datos seteados en INGLES), o simplemente me devuelve los alumnos sobre los que se han seteado datos. En la siguiente imagen se puede ver como al usar la consulta especificada mas arriba (respuesta de alex) me devuelve todos los nombres, pero en todas sus materias:



En este caso, El primer y ultimo alumno son el mismo pero cada uno con una materia diferente.

Como podría solucionarlo ? aquí mi codigo:

Código PHP:
Ver original
  1. <?php $consulta= "SELECT alumnos_lista.nombre,alumnos_lista.grupo,estudiantes_materias.materia,estudiantes_materias.ob1,estudiantes_materias.ob2,estudiantes_materias.ob3,estudiantes_materias.ob4,estudiantes_materias.ob5,estudiantes_materias.ob6,estudiantes_materias.ob7,estudiantes_materias.ob8,estudiantes_materias.ob9,estudiantes_materias.ob10,estudiantes_materias.ob11,estudiantes_materias.ob12,estudiantes_materias.ob13,estudiantes_materias.ob14,nota,valoracion,juicio FROM alumnos_lista INNER JOIN estudiantes_materias ON alumnos_lista.nombre = estudiantes_materias.nombre WHERE alumnos_lista.grupo='$grupo'";
  2. //Consulta errónea
  3. $query = mysql_query($consulta) or die("<strong>Error al ejecutar la consulta MySQL</strong>");
  4. echo "<table border=1 cellpadding=1 cellspacing=0><tr><th colspan=18><center>INFORME  GRUPO: ".$grupo." - ".$materia." </th><tr><TR><th bgcolor=silver><font size=1 ><center>___________ESTUDIANTE___________</font></th>
  5. <th bgcolor=silver><font size=1 ><center>01</font></th>
  6. <th bgcolor=silver><font size=1 ><center>02</font></th>
  7. <th bgcolor=silver><font size=1 ><center>03</font></th>
  8. <th bgcolor=silver><font size=1 ><center>04</font></th>
  9. <th bgcolor=silver><font size=1 ><center>05</font></th>
  10. <th bgcolor=silver><font size=1 ><center>06</font></th>
  11. <th bgcolor=silver><font size=1 ><center>07</font></th>
  12. <th bgcolor=silver><font size=1 ><center>08</font></th>
  13. <th bgcolor=silver><font size=1 ><center>09</font></th>
  14. <th bgcolor=silver><font size=1 ><center>10</font></th>
  15. <th bgcolor=silver><font size=1 ><center>11</font></th>
  16. <th bgcolor=silver><font size=1 ><center>12</font></th>
  17. <th bgcolor=silver><font size=1 ><center>13</font></th>
  18. <th bgcolor=silver><font size=1 ><center>14</font></th>
  19. <th bgcolor=silver><font size=1 ><center>Nota</font></th>
  20. <th bgcolor=silver><font size=1 ><center>Val</font></th>
  21. <th bgcolor=silver><font size=1 ><center>Juicio Valorativo</font></th></TR>";
  22. while($row=mysql_fetch_assoc($query)){
  23.     if($row['nota'] == 0){
  24.             $nota = "";
  25.         }else{
  26.             $nota = $row['nota'];
  27.         }
  28.     echo "<tr><td>".$row["nombre"]."</td><td>".$row['ob1']."</td><td>".$row['ob2']."</td><td>".$row['ob3']."</td><td>".$row['ob4']."</td><td>".$row['ob5']."</td><td>".$row['ob6']."</td><td>".$row['ob7']."</td><td>".$row['ob8']."</td><td>".$row['ob9']."</td><td>".$row['ob10']."</td><td>".$row['ob11']."</td><td>".$row['ob12']."</td><td>".$row['ob13']."</td><td>".$row['ob14']."</td><td>".$row['nota']."</td><td>".$row['valoracion']."</td><td>".$row['juicio']."</td></tr>";   
  29. }
  30. echo "</table><br><font color='red' size=3>Atenci&oacute;n: S&oacute;lo se listar&aacute;n los estudiantes sobre los cuales se hayan insertado datos.";
  31. ?>

Graciass!!
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.