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!!
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
Víctor Sánchez
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!!
Víctor Sánchez
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!
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/
Víctor Sánchez
Hola!
al final he optado por quitar la tabla y trabajar con div.
Ahora es otra pelea....
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); ?>