Foros del Web » Programando para Internet » PHP »

Listar Mysql Horizontal

Estas en el tema de Listar Mysql Horizontal en el foro de PHP en Foros del Web. Hola, he buscado sobre como listar contenido de una base de datos mysql y he encontrado algo pero no he sido capaz de usarlo, mis ...
  #1 (permalink)  
Antiguo 05/02/2012, 12:17
 
Fecha de Ingreso: julio-2011
Ubicación: Murcia
Mensajes: 19
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Listar Mysql Horizontal

Hola, he buscado sobre como listar contenido de una base de datos mysql y he encontrado algo pero no he sido capaz de usarlo, mis conocimientos aún no llegan ahí.

Tengo una tabla que quiero que muestre los datos así:



Pero en cambio me los muestra así:



Mi duda es sobre como puedo hacer que donde sale el rótulo blanco con el texto y la imagen de la tabla salgan como he puesto en la primera imagen.

El código que uso es este:

Código PHP:
<?
/* Abrimos la base de datos */
  
$conx mysql_connect ("localhost","root","");
  if (!
$conx) die ("Error al abrir la base <br/>"mysql_error()); 
  
mysql_select_db("fbsg") OR die("Connection Error to Database");    

/* Realizamos la consulta SQL */
$sql="select DISTINCT * from deck ORDER BY id DESC ";
$resultmysql_query($sql) or die(mysql_error());
if(
mysql_num_rows($result)==0) die("No hay registros para mostrar");

/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border=2 cellpadding=4 cellspacing=0>
"
;
/*Y ahora todos los registros */
while($row=mysql_fetch_array($result))
{
 echo 
"<tr>
        <th align='center'><img src='img/header/$row[id]/$row[banner].png' /></td> 
          </tr>
          
          <tr>
           <th align='center'><img src='script/resources/decks/$row[img].png' /></td>
       </tr>
"
;
}
echo 
"</table>";
while(
$row=mysql_fetch_array($result) and $variable)
{
 echo 
"<tr>
        <th align='center'><img src='img/header/$row[id]/$row[banner].png' /></td> 
          </tr>
          
          <tr>
           <th align='center'><img src='script/resources/decks/$row[img].png' /></td>
       </tr>
"
;
}[
HTML][/HTML]
echo 
"</table>";

?>
Tambien probando a repetir
Código HTML:
<th align='center'><img src='img/header/$row[id]/$row[banner].png' /></td> 
y
Código HTML:
<th align='center'><img src='script/resources/decks/$row.png' /></td> 
en sus respectivos <tr> sale siempre el mismo valor hasta que cambia de fila en la tabla html, es decir, así:





Saludos!
  #2 (permalink)  
Antiguo 05/02/2012, 13:32
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Listar Mysql Horizontal

Tienes que aprender html, tu codigo es incorrecto. Tus propios comentarios explican el error:

Código PHP:
Ver original
  1. /* Desplegamos cada uno de los registros dentro de una tabla */  
  2. echo "<table border=2 cellpadding=4 cellspacing=0>
  3. ";
  4. /*Y ahora todos los registros */

Necesitas una fila, luego una celda por cada registro, luego cierras fila.
Por ejemplo:

Código PHP:
Ver original
  1. <?php
  2. $tabla = "<table>";
  3. $tabla .="<tr>";
  4. $tabla ."<td colspan='".mysqlnum_fields($query)."'>El título</td>";
  5. while($algo = mysql_fetch_assoc($query))
  6. {
  7. $tabla .="<td>{$algo[ 'campo1']}</td>";
  8. $tabla .="<td>{$algo[ 'campo2']}</td>";
  9. $tabla .="<td>{$algo[ 'campo3']}</td>";
  10. }
  11. $tabla .="</tr></table>";
  12. echo $tabla;
  13. ?>

Esa es la idea, comprueba los detalles pero este es el esquema, saludos.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 05/02/2012, 13:41
 
Fecha de Ingreso: julio-2011
Ubicación: Murcia
Mensajes: 19
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Listar Mysql Horizontal

EDITO: Resulta que mysqlnum_fields necesita un _ entre mysql y num y el query me corresponde a $result

Muchas gracias por tu respuesta, pero tengo una duda, estos son mis datos sql para conectar a la bd:

$conx = mysql_connect ("localhost","root","");
if (!$conx) die ("Error al abrir la base <br/>". mysql_error());
mysql_select_db("fbsg") OR die("Connection Error to Database");

Y este el que uso para seleccionar los datos:

$sql="select DISTINCT * from deck ORDER BY id DESC";
$result= mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result)==0) die("No hay registros para mostrar");

¿Sabes a que corresponde la variable $query de los datos que tengo yo?

Saludos, es que dejando query me salta un error en la línea en la que esta puesta por primera vez.

Última edición por ivanicop; 05/02/2012 a las 13:56
  #4 (permalink)  
Antiguo 05/02/2012, 14:08
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Listar Mysql Horizontal

Holas,

Como te dijo @repara2, el detalle es html y hasta incluso te podria decir con css. Puedes usar PHP para imprimirlo por ejemplo con divs y en el lado del cliente con simples CSS puedes ajustarlos a lo que deseas por ejemplo:

Código CSS:
Ver original
  1. <style>
  2.  
  3. .item{
  4. display:inline-block;
  5. width: 150px;
  6. }
  7.  
  8. .titulo{
  9. // CSS para tu titulo en ancho, alto,
  10. }
  11.  
  12. .imagen{
  13. // CSS para tu imagen en ancho, alto,
  14. }
  15. </style>

Código PHP:
Ver original
  1. ....
  2. while($row=mysql_fetch_array($result))
  3. { ?>
  4. <div class="item">
  5.  
  6.     <div class="titulo"><?php echo $row['titulo'];?></div>
  7.     <div class="imagen"><img src='script/resources/decks/<?php echo $row['img']; ?>.png' /></div>
  8.  
  9. </div>
  10.  
  11. <?
  12. }
  13. ....

Esto seria ya un tema de HTML o CSS.

Saludos
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 05/02/2012, 14:15
 
Fecha de Ingreso: julio-2011
Ubicación: Murcia
Mensajes: 19
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Listar Mysql Horizontal

Gracias Gildus, aunque me quedo con las tablas que me resultan más fáciles para esto.

Por cierto, ahora me aparece así:



¿Cómo puedo hacer que salga así?



Es decir, subir el título arriba. He estado toqueteando los <tr> pero nada.

Saludos
  #6 (permalink)  
Antiguo 05/02/2012, 15:10
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Listar Mysql Horizontal

Pues si tendrias que hacer otro tr algo como:

Código PHP:
Ver original
  1. echo "<tr>
  2.        <th align='center'><img src='img/header/$row[id]/$row[banner].png' /></td>
  3.          </tr>
  4.          
  5.          <tr>
  6.           <th align='center'><img src='script/resources/decks/$row[img].png' /></td>
  7.       </tr>
  8. ";

a esto:


Código PHP:
Ver original
  1. echo "
  2. <tr>
  3.           <td><?php echo "Aqui el titulo...."; ?></td>
  4.        </tr>
  5.       <tr>
  6.         <th align='center'><img src='img/header/$row[id]/$row[banner].png' /></td>
  7.       </tr>          
  8. ";


Saludos
__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 06/02/2012, 10:02
 
Fecha de Ingreso: julio-2011
Ubicación: Murcia
Mensajes: 19
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Listar Mysql Horizontal

Hola Gildus, con el código que pones me sale así:

  #8 (permalink)  
Antiguo 06/02/2012, 11:21
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Listar Mysql Horizontal

si entendi bien la descripcion de la imagen tambien es una imagen?
si es asi desde hacer asi

Código PHP:

echo "<table border=2 cellpadding=4 cellspacing=0><tr>"
while(
$row=mysql_fetch_array($result)) 

 echo 
"<td><table border=2>":
 echo 
"<tr> <th align='center'><img src='img/header/$row[id]/$row[banner].png' /></td></tr> ";
 echo 
"<tr> <th align='center'><img src='script/resources/decks/$row[img].png' /></td> </tr> ";
 echo 
"</table></td>":
 

echo 
"<tr></table>"
Basicamente es crear una tabla principal que en cada ciclo de while forma una celda y dentro de cada celda coloca una tabla mas pequeña que contiene el producto,
Espero te sea util.
  #9 (permalink)  
Antiguo 06/02/2012, 11:26
 
Fecha de Ingreso: julio-2011
Ubicación: Murcia
Mensajes: 19
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Listar Mysql Horizontal

Luis, eres un crack, no se me había ocurrido lo de tablas dentro de tablas :P
  #10 (permalink)  
Antiguo 07/02/2012, 13:49
 
Fecha de Ingreso: julio-2011
Ubicación: Murcia
Mensajes: 19
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Listar Mysql Horizontal

Siento el doblepost, pero el tema si edito el mensaje anterior no sube.

REsulta que uso el código de Luis, pero no sé como hacer para que me repita esa serie de columnas en la fila de abajo sin repetir los valores:



*Por favor, haced solo caso a la estructura de la tabla

Etiquetas: horizontal, html, mysql, registro, sql, tabla, variables
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 17:32.