Foros del Web » Programando para Internet » PHP »

Registros de base de datos en table

Estas en el tema de Registros de base de datos en table en el foro de PHP en Foros del Web. Hola foreros!! he creado la siguiente tabla: Código PHP: < table width = "90%"  id = "tabnovedades" >   < tr >     < th height = "40"  colspan ...
  #1 (permalink)  
Antiguo 05/07/2014, 07:02
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 11 años, 4 meses
Puntos: 0
Exclamación Registros de base de datos en table

Hola foreros!!

he creado la siguiente tabla:

Código PHP:
<table width="90%" id="tabnovedades">
  <
tr>
    <
th height="40" colspan="3" scope="col" >NOVEDADES<br>
    &
nbsp;
    </
th>
    </
tr>
  <
tr>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
  </
tr>
  <
tr>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
  </
tr>
  <
tr>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
    <
td><img src="../imgnovedades/ejemplo.jpg"  alt=""/></td>
  </
tr>
</
table
Y tengo una base de datos mysql.

Cada una de esas imágenes corresponde a un anuncio grabado en mi base de datos, y quiero que al pinchar una de las imágenes, se abra una nueva página con los datos de ése anuncio concreto.


Sé como pasar los datos de una página a otra mediante el link...pero:

¿Cómo hago para que salga la imagen de cada anuncio en esa tabla?


GRACIAS!!
  #2 (permalink)  
Antiguo 05/07/2014, 07:21
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Registros de base de datos en table

Hola,

Necsitas usar variables y hacer un bucle... por ejemplo foreach() de cada "bloque":

Código PHP:
Ver original
  1. <?php foreach ($imagenes as $img_bloque): ?>
  2.   <tr>
  3.     <td><img src="http://dominio.com/path/$img_bloque[0].jpg"  alt=""/></td>
  4.     <td><img src="http://dominio.com/path/$img_bloque[1].jpg"  alt=""/></td>
  5.     <td><img src="http://dominio.com/path/$img_bloqueg[2].jpg"  alt=""/></td>
  6.   </tr>
  7. <?php endforeach; ?>

$imagenes seria en tu caso un array de dimension N donde cada celda contiene un array de dimension 3
__________________
Salu2!
  #3 (permalink)  
Antiguo 05/07/2014, 07:23
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Registros de base de datos en table

O también dicho de otra forma ¿como puedo poner en cada td un registro diferente de mi base de datos?

Para que así al pinchar en la imagen pasar los datos de ese anuncio a la otra nueva página que se abre....


Gracias!!!
  #4 (permalink)  
Antiguo 05/07/2014, 07:33
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Respuesta: Registros de base de datos en table

Cita:
Iniciado por Italico76 Ver Mensaje
Hola,

Necsitas usar variables y hacer un bucle... por ejemplo foreach() de cada "bloque":

Código PHP:
Ver original
  1. <?php foreach ($imagenes as $img_bloque): ?>
  2.   <tr>
  3.     <td><img src="http://dominio.com/path/$img_bloque[0].jpg"  alt=""/></td>
  4.     <td><img src="http://dominio.com/path/$img_bloque[1].jpg"  alt=""/></td>
  5.     <td><img src="http://dominio.com/path/$img_bloqueg[2].jpg"  alt=""/></td>
  6.   </tr>
  7. <?php endforeach; ?>

$imagenes seria en tu caso un array de dimension N donde cada celda contiene un array de dimension 3
Perdón pero no entiendo ésto:

$img_bloque[0].jpg
$img_bloque[1].jpg
$img_bloque[2].jpg

  #5 (permalink)  
Antiguo 05/07/2014, 07:34
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Registros de base de datos en table

Hola,

Entonces ya no son imagenes sino imagenes embebidas en enlaces:

Código PHP:
Ver original
  1. <?php foreach ($imagenes as $key => $img_bloque): ?>
  2. <?php $id_bloque=$id[$key];  ?>
  3.   <tr>
  4.     <td><a href="http://dominio.com/path?id=$id_bloque[0]"><img src="http://dominio.com/path/$img_bloque[0].jpg"  alt=""/></a></td>
  5.      <td><a href="http://dominio.com/path?id=$id_bloque[1]"><img src="http://dominio.com/path/$img_bloque[1].jpg"  alt=""/></a></td>
  6.      <td><a href="http://dominio.com/path?id=$id_bloque[2]"><img src="http://dominio.com/path/$img_bloque[2].jpg"  alt=""/></a></td>
  7. <?php endforeach; ?>

Y es lo mismo....... esa "Vista" (HTML generado) tiene una variable $id que es un arreglo de dimension N (o sea N registros) donde cada celda es un arreglo de 3

Cita:
Iniciado por angel_xx_1990 Ver Mensaje
Perdón pero no entiendo ésto:

$img_bloque[0].jpg
$img_bloque[1].jpg
$img_bloque[2].jpg

Es un arreglo....... o array .. de 3 posiciones: 0, 1 y 2
__________________
Salu2!
  #6 (permalink)  
Antiguo 05/07/2014, 07:36
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Registros de base de datos en table

Tengo:

Código PHP:
Ver original
  1. <?php
  2. include("../conexion.php");
  3.  
  4.     $rst_form=mysql_query("SELECT * FROM guada");
  5.     $num_rows=mysql_num_rows($rst_form);
  6.  
  7.  
  8. ?>



y luego:


Código PHP:
Ver original
  1. <table width="90%" id="tabnovedades">
  2.   <tr>
  3.     <th height="40" colspan="3" scope="col" >GUADALAJARA<br>
  4.     &nbsp;
  5.     </th>
  6.     </tr>    
  7.     <?php foreach ($imagenes as $img_bloque):?>
  8.   <tr>
  9.     <td><img src="http://www.forosdelweb.com/f18/imgnovedades/ejemplo.jpg"  alt=""/></td>
  10.     <td><img src="http://www.forosdelweb.com/f18/imgnovedades/ejemplo.jpg"  alt=""/></td>
  11.     <td><img src="http://www.forosdelweb.com/f18/imgnovedades/ejemplo.jpg"  alt=""/></td>
  12.   </tr>
  13.   <?php endforeach; ?>
  14. </table>
  15.  </section>



Asi?????
  #7 (permalink)  
Antiguo 05/07/2014, 07:39
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Registros de base de datos en table

pero en mi base de datos las imagenes están en una columna que se llama imagenes1

no entiendo como van a aparecer mis imagenes
  #8 (permalink)  
Antiguo 05/07/2014, 07:40
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Registros de base de datos en table

Y los arreglos donde quedaron ? ejemplo.jpg sera siempre la misma imagen....... para eso no usamos PHP

Asi:

Código PHP:
Ver original
  1. <?php foreach ($imagenes as $key => $img_bloque): ?>
  2. <?php $id_bloque=$id[$key];  ?>
  3. <tr>
  4.     <td><a href="http://xxx.com/path?id=$id_bloque[0]"><img src="http://xxx.com/path/$img_bloque[0].jpg"  alt=""/></a></td>
  5.     <td><a href="http://xxx.com/path?id=$id_bloque[1]"><img src="http://xxx.com/path/$img_bloque[1].jpg"  alt=""/></a></td>
  6.     <td><a href="http://xxx.com/path?id=$id_bloque[2]"><img src="http://xxx.com/path/$img_bloque[2].jpg"  alt=""/></a></td>
  7. <?php endforeach; ?>

Y te las ingenias desde ahora
__________________
Salu2!
  #9 (permalink)  
Antiguo 05/07/2014, 08:08
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Registros de base de datos en table

Creo que no me e explicado bien jejeje lo siento.

Lo que quiero es mostrar todos los resultados de mi base de datos, pero en vez de hacerlo linea por linea quiero hacerlo en forma de tabla de 3 filas, para que así me ocupe menos espacio.

Y el dato a mostrar va a ser una imagen.

Al pinchar en esa imagen pasarle los demas datos a la página web que se va abrir, de la siguiente manera:


Código PHP:
Ver original
  1. <a href="contact.php?dato=<?php echo $fila[1];?>&dato2=<?php echo $fila[3];?>&dato3=<?php echo $fila[2];?>&dato4=<?php echo $fila[16];?>&dato5=<?php echo $fila[15];?>&dato6=<?php echo $fila[13];?>&dato7=<?php echo $fila[5];?>&dato8=<?php echo $fila[6];?>&dato9=<?php echo $fila[14];?>"><img src="imagen.png"  alt=""/></a>



Pero no se como mostrar los registros de mi base de datos en forma de tabla con 3 filas...



GRACIAS!!
  #10 (permalink)  
Antiguo 05/07/2014, 16:52
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Registros de base de datos en table

Amigo:

Estube algo "ocupado" pero aca te dejo la solucion... todos hacemos algo parecido..... se basa en usar el operador modulo (%) de la division:

Código PHP:
Ver original
  1. <?php
  2.     // registros de consulta SQL simulada:
  3.    
  4. $datos = array (
  5.     array('id'=>2,'img'=>'xxxxxxx.jpg'),   
  6.     array('id'=>3,'img'=>'lalala.jpg'),
  7.     array('id'=>42,'img'=>'blabla.jpg'),
  8.     array('id'=>334,'img'=>'xxxxxxx.jpg'),
  9.     array('id'=>555,'img'=>'xxxxxxx.jpg'),
  10.     array('id'=>560,'img'=>'xxxxxxx.jpg'),
  11.     array('id'=>700,'img'=>'xxxxxxx.jpg'),
  12.     array('id'=>704,'img'=>'xxxxxxx.jpg'),
  13.     array('id'=>708,'img'=>'xxxxxxx.jpg'),
  14.     array('id'=>709,'img'=>'xxxxxxx.jpg'),
  15.     array('id'=>710,'img'=>'xxxxxxx.jpg'),
  16.     array('id'=>811,'img'=>'xxxxxxx.jpg'),
  17.     array('id'=>912,'img'=>'xxxxxxx.jpg'),
  18.     array('id'=>913,'img'=>'xxxxxxx.jpg'),
  19.    
  20. );

y ahora... el programa:

Código PHP:
Ver original
  1. <?php
  2.     $close=null;
  3.     $cols= 3;  // cols de la tabla
  4. ?>
  5.  
  6. <table width="90%" id="tabnovedades">  
  7. <?php foreach ((array) $datos as $i => $dato): ?>
  8. <?php if ($i%$cols==0): ?>
  9.     <tr>
  10. <?php endif; $close = $i+$cols; ?>
  11.         <td>                                       
  12.             <a href="http://xxx.com/path?id=<?= $dato['id']; ?>">
  13.                 <img src="http://xxx.com/path/<?= $dato['img']; ?>" alt=""/>
  14.             </a>       
  15.         </td>  
  16.        
  17. <?php if ($i==$close): ?>
  18.     </tr>
  19. <?php endif; ?>
  20.  
  21. <?php
  22.     endforeach;
  23.    
  24.     // cierro la ultima columna si se que no se pudo hacer en el bucle
  25.     if (count($datos)!=0 && count($datos)%$cols!=0)
  26.         echo '</tr>';
  27.  
  28. ?>
  29. </table>

He hecho esto mil veces... de distintas formas pero creo esta puede ser la mas simple...

Este mismo algoritmo sirve para con DIVs y nota que el PHP no ha interrumpido para nada el HTML... si un diseñador te entrega una plantilla en HTML deberias hacer algo asi...... ni PHP ni Javascript deben ser invasivos
__________________
Salu2!

Última edición por Italico76; 05/07/2014 a las 21:34

Etiquetas: mysql, registros, tabla, table
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 12:51.