Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Extraer registros de una tabla de forma especial..

Estas en el tema de Extraer registros de una tabla de forma especial.. en el foro de PHP en Foros del Web. Buenas, bueno. Aunque me acabo de registrar suelo visitar bastante este foro para aclarar dudas con posts de otros usuarios, pero bueno, esta duda no ...
  #1 (permalink)  
Antiguo 21/02/2015, 22:00
Avatar de princk093  
Fecha de Ingreso: febrero-2015
Ubicación: Venezuela
Mensajes: 28
Antigüedad: 9 años, 9 meses
Puntos: 7
Busqueda Extraer registros de una tabla de forma especial..

Buenas, bueno. Aunque me acabo de registrar suelo visitar bastante este foro para aclarar dudas con posts de otros usuarios, pero bueno, esta duda no la he conseguido a ver si alguien me puede ayudar.

Verán, tengo cuatro registros en una tabla de una base de datos, dichos registros poseen cuatro campos id, con los siguientes valores: 1,5,9 y 13.

Quiero que dichos registros se muestren en un <table> html que tendrá 16 filas totales, que será mas o menos asi:

Código HTML:
<table>
<tr>
<th>ID</th>
<th>User</th>
</tr>
<tr>
<td>id del usuario</td>
<td>nombre del user</td>
</tr>
</table> 
la parte que se va a repetir 16 veces es esta
Código HTML:
<tr>
<td>id del usuario</td>
<td>nombre del user</td>
</tr> 
entonces, retomamos esos cuatro registros en la tabla que tienen id 1,5,9,13, quiero que el que tiene id 1, esté en la primera tabla, luego cuando pase al id 5, ese se coloque en la quinta, quedando entre los <tr>que contienen al id 1 y los que contienen a ese <tr>id 5, que queden 4 de por medio que digan "vacios", algo como esto:



Alguien me ayuda? saludos.
  #2 (permalink)  
Antiguo 22/02/2015, 08:18
Avatar de princk093  
Fecha de Ingreso: febrero-2015
Ubicación: Venezuela
Mensajes: 28
Antigüedad: 9 años, 9 meses
Puntos: 7
Respuesta: Extraer registros de una tabla de forma especial..

Nadie ninguna idea :(?
  #3 (permalink)  
Antiguo 22/02/2015, 08:54
Avatar de princk093  
Fecha de Ingreso: febrero-2015
Ubicación: Venezuela
Mensajes: 28
Antigüedad: 9 años, 9 meses
Puntos: 7
Respuesta: Extraer registros de una tabla de forma especial..

Vale, nadie contestó. Igual lo coloco acá de referencia:

Código PHP:
Ver original
  1. for($x=0;$x<17;$x++) {
  2. $sql = $db->query("SELECT id FROM tabla WHERE id=$x");
  3. $dato = $db->fetch_array("$sql");
  4. if($x != $dato['id']) {
  5. #muestro contenido con lo que extraiga del query
  6. } else {
  7. #muestro contenido vacío
  8. }
  9. }

Igual si a alguien se le ocurre otra cosa, evidentemente más óptima que la coloque por favor.

Edito: tener en cuenta que $db es un objeto que hace llamado a la base de datos..
  #4 (permalink)  
Antiguo 22/02/2015, 10:19
 
Fecha de Ingreso: enero-2015
Mensajes: 205
Antigüedad: 9 años, 9 meses
Puntos: 18
Respuesta: Extraer registros de una tabla de forma especial..

La solución es correcta, pero con el fin de reducir las consultas a la base de datos sería mejor que sacases la select fuera, recuperes todos los valores que no tengan valor nulo,

Y luego pintases el for, con los valores que no sean nulo en su lugar.

Saludos
  #5 (permalink)  
Antiguo 22/02/2015, 15:29
 
Fecha de Ingreso: enero-2015
Mensajes: 205
Antigüedad: 9 años, 9 meses
Puntos: 18
Respuesta: Extraer registros de una tabla de forma especial..

Hola!,

Te digo como lo haría yo, no he probado si compila , prueba!

Código PHP:
Ver original
  1. //haces la select ORDENADO
  2. $sql = $db->query("SELECT id FROM tabla order by id");
  3.  
  4. if ($sql) {
  5.       while($row = mysql_fetch_array($sql)) {
  6.         //tu bucle
  7.         for($x=0;$x<17;$x++) {         
  8.             if($x == $row['id']) {
  9.             // si existe muestro el contenido de la select y salgo de este bucle
  10.             break;
  11.             } else {
  12.             #Si no existe muestro contenido vacío y voy a por la siguiente fila.
  13.             }
  14.         }      
  15.       }
  16. }

Etiquetas: forma, html, registro, registros, tabla, usuarios
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 16:58.