Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Ver tabla de MySQL completa en un PHP

Estas en el tema de Ver tabla de MySQL completa en un PHP en el foro de PHP en Foros del Web. Hola! Esto ya lo había empezado en este hilo pero como ha cambiado el tema a tratar abro otro. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original ...
  #1 (permalink)  
Antiguo 04/01/2016, 14:08
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 11 meses
Puntos: 5
Ver tabla de MySQL completa en un PHP

Hola! Esto ya lo había empezado en este hilo pero como ha cambiado el tema a tratar abro otro.
Código PHP:
Ver original
  1. <form action="Guardar.php" method="get">
  2. <table border="1">
  3.     <tr>
  4.         <td><b>Alumno</b></td>
  5. <?php
  6. include ("../../Dentro/Siempre.php");
  7. $Tabla = "PROF".$_SESSION['Usuario']."-ASIG".$_SESSION['Curso']."-EV".$_GET['Evaluacion']."-CuadernoCalificaciones";
  8. $Query = "SELECT * FROM `".$Tabla."`";
  9. $MyQuery = $MyConnect->query($Query);
  10. $MyFetch = $MyQuery->fetch_assoc();
  11. array_shift($MyFetch);
  12. foreach(array_keys($MyFetch) as $Array){
  13.     echo '<td><b>'.$Array.'</b></td>';
  14. }
  15. ?>
  16.     </tr>
  17. <?php
  18. $Query2 = "SELECT * FROM `".$Tabla."`";
  19. $MyQuery2 = $MyConnect->query($Query2);
  20. while($MyFetch2 = $MyQuery2->fetch_row()){
  21.     $Query3 = "SELECT * FROM Alumnos WHERE `ID` = '".$MyFetch2[0]."'";
  22.     $MyQuery3 = $MyConnect->query($Query3);
  23.     $MyFetch3 = $MyQuery3->fetch_assoc();
  24.     echo '<tr><td>'.$MyFetch3['NombreCompleto'].'</td>';
  25.     // Código de cada celda
  26.     echo '</tr>';
  27. }
  28. ?>
  29. </table>
  30. <br>
  31. <input type="submit" value="Guardar cuaderno">
  32. </form>
Tengo ese código y una tabla MySQL en la que tengo una columna inicial con el nombre de los alumnos y el resto de columnas son calificaciones en una cantidad variable. Si fuera una cantidad fija haría un echo con el array y con distintas claves cada vez, es decir $MyFetch[0...n] pero ahora es variable y necesito mostrar todas las columnas. ¿cómo hacerlo? si no me expreso bien me pueden preguntar dudas.
  #2 (permalink)  
Antiguo 04/01/2016, 14:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Ver tabla de MySQL completa en un PHP

Al usar fetch_assoc te está indicando que es las llaves son asociativas. Es decir vas a usar el nombre de la columna de la base de datos exactamente como está creada en la base de datos. Si en la base de datos tienes una columna llamada Foo y otra llamada BaR debes llamarla de esta forma
Código PHP:
Ver original
  1. echo $dbValues['Foo'];
  2. echo $dbValues['BaR'];

Las llaves son sensitivas, asegurate de llamarlas exactamente como están creadas en la base de datos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/01/2016, 15:06
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 11 meses
Puntos: 5
Respuesta: Ver tabla de MySQL completa en un PHP

Cita:
Iniciado por abimaelrc Ver Mensaje
Al usar fetch_assoc te está indicando que es las llaves son asociativas. Es decir vas a usar el nombre de la columna de la base de datos exactamente como está creada en la base de datos. Si en la base de datos tienes una columna llamada Foo y otra llamada BaR debes llamarla de esta forma
Código PHP:
Ver original
  1. echo $dbValues['Foo'];
  2. echo $dbValues['BaR'];

Las llaves son sensitivas, asegurate de llamarlas exactamente como están creadas en la base de datos.
Gracias, pero eso ya lo sé. Me refiero a que es PHP el que tiene que deducir cuántas columnas hay e imprimirlas, no que yo le digo cuántas hay.
  #4 (permalink)  
Antiguo 04/01/2016, 16:00
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Ver tabla de MySQL completa en un PHP

Creo que te refieres a lo que te comentó @gnzsoloyo. Recorres con un for/each y muestras las keys.
  #5 (permalink)  
Antiguo 04/01/2016, 16:02
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 11 meses
Puntos: 5
Respuesta: Ver tabla de MySQL completa en un PHP

Cita:
Iniciado por Zenok Ver Mensaje
Creo que te refieres a lo que te comentó @gnzsoloyo. Recorres con un for/each y muestras las keys.
Ahora no me refiero a las keys, me refiero a las calificaciones, es decir, a cada fila.
  #6 (permalink)  
Antiguo 04/01/2016, 17:19
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 11 meses
Puntos: 5
Respuesta: Ver tabla de MySQL completa en un PHP

Código PHP:
Ver original
  1. <form action="Guardar.php" method="get">
  2. <table border="1">
  3.     <tr>
  4.         <td><b>Alumno</b></td>
  5. <?php
  6. include ("../../Dentro/Siempre.php");
  7. // Creo el nombre general de la tabla
  8. $Tabla = "PROF".$_SESSION['Usuario']."-ASIG".$_SESSION['Curso']."-EV".$_GET['Evaluacion'];
  9. // Traigo los nombres de los ítems y los muestro en fila
  10. $Query = "SELECT Reducido FROM `".$Tabla."-ItemsExistentes`";
  11. $MyQuery = $MyConnect->query($Query);
  12. while ($MyFetch = $MyQuery->fetch_assoc()){
  13.     echo '<td><b>'.$MyFetch['Reducido'].'</b></td>';
  14. }
  15. ?>
  16.     </tr>
  17. <?php
  18. // Busco los alumnos matriculados
  19. $Query2 = "SELECT * FROM `Matriculaciones` WHERE `Asignatura` = '".$_SESSION['Curso']."'";
  20. $MyQuery2 = $MyConnect->query($Query2);
  21. while($MyFetch2 = $MyQuery2->fetch_assoc()){
  22.     $Query3 = "SELECT * FROM `Alumnos` WHERE `ID` = '".$MyFetch2['Alumno']."'";
  23.     $MyQuery3 = $MyConnect->query($Query3);
  24.     while ($MyFetch3 = $MyQuery3->fetch_assoc()){
  25.         echo '<tr><td>'.utf8_encode($MyFetch3['NombreCompleto']).'</td>';
  26.         $Query4 = "SELECT * FROM `".$Tabla."-CuadernoCalificaciones` WHERE `NumeroIdentidadAlumno` = '".$MyFetch2['ID']."'";
  27.         $MyQuery4 = $MyConnect->query($Query4);
  28.         while ($MyFetch4 = $MyQuery4->fetch_array()){
  29.                 $i = 1;
  30.                 echo '<td data-ID="'.$i.'">'.$MyFetch4[$i].'</td>';
  31.                 $i++;
  32.         }
  33.     }
  34. }
  35. ?>
  36. </table>
  37. <br>
  38. <input type="submit" value="Guardar cuaderno">
  39. </form>
Las celdas que tengo que repetir son las de la tabla $Tabla-CuadernoCalificaciones y el nombre de la tabla no se puede especificar porque es variable. ¿Cómo se haría?
  #7 (permalink)  
Antiguo 05/01/2016, 06:19
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Ver tabla de MySQL completa en un PHP

Cita:
Iniciado por diegoguerrero Ver Mensaje
Código PHP:
Ver original
  1. <form action="Guardar.php" method="get">
  2. <table border="1">
  3.     <tr>
  4.         <td><b>Alumno</b></td>
  5. <?php
  6. include ("../../Dentro/Siempre.php");
  7. // Creo el nombre general de la tabla
  8. $Tabla = "PROF".$_SESSION['Usuario']."-ASIG".$_SESSION['Curso']."-EV".$_GET['Evaluacion'];
  9. // Traigo los nombres de los ítems y los muestro en fila
  10. $Query = "SELECT Reducido FROM `".$Tabla."-ItemsExistentes`";
  11. $MyQuery = $MyConnect->query($Query);
  12. while ($MyFetch = $MyQuery->fetch_assoc()){
  13.     echo '<td><b>'.$MyFetch['Reducido'].'</b></td>';
  14. }
  15. ?>
  16.     </tr>
  17. <?php
  18. // Busco los alumnos matriculados
  19. $Query2 = "SELECT * FROM `Matriculaciones` WHERE `Asignatura` = '".$_SESSION['Curso']."'";
  20. $MyQuery2 = $MyConnect->query($Query2);
  21. while($MyFetch2 = $MyQuery2->fetch_assoc()){
  22.     $Query3 = "SELECT * FROM `Alumnos` WHERE `ID` = '".$MyFetch2['Alumno']."'";
  23.     $MyQuery3 = $MyConnect->query($Query3);
  24.     while ($MyFetch3 = $MyQuery3->fetch_assoc()){
  25.         echo '<tr><td>'.utf8_encode($MyFetch3['NombreCompleto']).'</td>';
  26.         $Query4 = "SELECT * FROM `".$Tabla."-CuadernoCalificaciones` WHERE `NumeroIdentidadAlumno` = '".$MyFetch2['ID']."'";
  27.         $MyQuery4 = $MyConnect->query($Query4);
  28.         while ($MyFetch4 = $MyQuery4->fetch_array()){
  29.                 $i = 1;
  30.                 echo '<td data-ID="'.$i.'">'.$MyFetch4[$i].'</td>';
  31.                 $i++;
  32.         }
  33.     }
  34. }
  35. ?>
  36. </table>
  37. <br>
  38. <input type="submit" value="Guardar cuaderno">
  39. </form>
Las celdas que tengo que repetir son las de la tabla $Tabla-CuadernoCalificaciones y el nombre de la tabla no se puede especificar porque es variable. ¿Cómo se haría?
Por el primer post, creía que te referías a mostrar esto:

Id_alumno, nombre, cali_1, cali_2, cali_3, cali_4

Y querías mostrar el valor de todas las columnas incluyendo el numero indeterminado de columnas "cali_*"

¿Te refieres a seleccionar datos de una tabla distinta por cada usuario? Lo que no veo nada óptimo es crear una tabla de calificaciones para cada usuario, cuando tengas 10.000, 100.000 alumnos tendrás 100.000 tablas, con una sola debería contener todos los datos.

Edito: No había visto el tema como solucionado.

Última edición por Zenok; 05/01/2016 a las 06:28

Etiquetas: completa, mysql, select, tabla, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:37.