Añadir una fila nueva en una tabla generada con php y sql
Hola!
Tengo una bbdd con título e imagen. Consigo montar la tabla para que me enseñe el contenido de la bbdd. El problema es que me lo hace en una sola línea ( <tr> </tr>). Estoy probando maneras de indicar que cuando una variable sea mayor de x genere una línea nueva ¿alguna idea?
Tengo este código
<table id="tablacatalogo">
<tr>
<?php do { ?>
<td><img src="img/catalogo/<?php echo $row_linea1['Imagen']; ?>"/>
<p><?php echo $row_linea1['Nombre']; ?></p></td>
<?php } while ($row_linea1 = mysql_fetch_assoc($linea1)); ?>
</tr>
</table>
Saludos!!
andrewman
Necesitas usar una variable que lleve la cuenta de registros (productos) y según ella abrir o cerrar filas.
Sería algo como:
<?php
$conexion = mysql_connect('localhost:8888', 'root', 'root');
mysql_select_db('Crazywoods', $conexion);
$result = mysql_query("SELECT nombre, descripcion, imagen FROM catalogo ORDER BY id ASC");
?>
<table>
<?php
$i = 0; // contador de productos
$total_prods = mysql_num_rows($result); // total de productos
$max_cols = 5; // limite de columnas (celdas) por fila
while ( $producto = mysql_fetch_array($result) ): ?>
<?php if( $i == 0 || ( $i % $max_cols == 0 ) ): // abrimos la fila de celdas ?>
<tr>
<?php endif; ?>
<td>
<img class="imagen_producto" src="img/catalogo/<?php echo $producto['imagen']; ?>"/>
<span class="nombre_producto">Nombre: <?php echo $producto['nombre']; ?></span>
<br />
<span class="descripcion_producto">Descripci&oacute;n: <?php echo $producto['descripcion']; ?></span>
</td>
<?php if( ( $i % ($max_cols-1) == 0 && $i != 0 ) || $i == ($total_prods-1) ): // limite de columnas o fin de registros, debemos cerrar la fila ?>
</tr>
<?php endif; ?>
<?php $i++; // aumentamos contador de productos ?>
<?php endwhile; ?>
</table>
<?php mysql_free_result($result);
mysql_close($conexion); ?>
victor-sanchez
Hola!
al final he optado por quitar la tabla y trabajar con div.
Ahora es otra pelea....
Saludos!!
michaellaspalmas
Hay muchoas soluciones para tu problema medianta ajax o javascript.
Puedes bajar plugins para dreamweaver que te preguntan como quieres organizar tus tablas con datos php.
Aqui un enlace para que te puedes hacer una idea:
http://www.anieto2k.com/2009/09/07/15-plugins-jquery-para-la-manipulacion-de-tablas/
victor-sanchez
Hola! pongo otro código, la pregunta es la misma que para el anterior código:
¿cómo hacer para que se muestren los registros en filas de 5 unidades?
<?php
$conexion = mysql_connect('localhost:8888', 'root', 'root'); // se conecta con el servidor
mysql_select_db('Crazywoods', $conexion); // selecciona la base de datos
$tabla = mysql_query("SELECT nombre, descripcion, imagen FROM catalogo ORDER BY id ASC"); // selecciono todos los registros de la tabla usuarios, ordenado por nombre
while ($registro = mysql_fetch_array($tabla)) { // comienza un bucle que leera todos los registros y ejecutara las ordenes que siguen
echo '<img src="img/catalogo/' . $registro['imagen'].'"/>';
echo 'Nombre: ' . $registro['nombre'] . ' '; // imprime el nombre
echo 'Email: ' . $registro['descripcion'] . ' '; // imprime el email
echo 'imagen: ' . $registro['imagen'] . ' ' ; // imprime el email
} // fin del bucle de ordenes
mysql_free_result($tabla); // libera los registros de la tabla
mysql_close($conexion); // cierra la conexion con la base de datos
?>
Saludos!
victor-sanchez
Hola!
si lo pongo como sugieres me hace una línea por producto, hace esto:
1
2
3
4
5
6
Así como lo tengo hace esto:
1 2 3 4 5 6 7 8 9
Y yo necesito esto:
1 2 3 4 5
6 7 8 9
Saludos!!
victor_moreno
Hola.
Desde el desconocimiento, ¿por que no pones el código php detrás de tr para que lo repita también?
Un saludo