Mostrar imagen con datos
Hola ditman, espero que me ayude en mi problema estoy trabajadno php y mysql y la tabla que tengo es. Productos y sus campos cod_pro, descripción, categoría, imagen y hasta el momento lo que hice es insertar los registros a mi bd. Los registros los guardo con sus respectivas imágenes. Y el campo imagen lo que hice era guardar la imagen en una carpeta img, y en el campo de mi tabla imagen solo guardo la ruta de la imagen.
Y me consulta es como puedo mostrar de la tabla productos todos los registros incluyendo la imagen que esta en la carpeta img. Espero su ayuda de antemano muchas gracias...
Y me consulta es como puedo mostrar de la tabla productos todos los registros incluyendo la imagen que esta en la carpeta img. Espero su ayuda de antemano muchas gracias...
1 Respuesta
Respuesta de ditman
1
1
ditman, Ingeniero web experto en tecnologías XHTML, CSS, PHP, MySQL,...
Siempre y cuando la carpeta "img" esté accesible al servidor web, para mostrar los registros únicamente tienes que imprimir una tag <IMG>, cuyo SRC sea la ruta que tienes grabada en la BBDD, de esta manera:
<img src="[PATH_A_LA_IMAGEN]" />
<img src="[PATH_A_LA_IMAGEN]" />
Hola ditman gracias por la pronta respuesta. Me podría explicar el código detallado de esta consulta es que soy nuevo en este campo de php y creo que me voy a complicar.
Te lo agradezco
Te lo agradezco
Intenta escribir código que haga un listado con las rutas de las imágenes.
Si no me das más datos sobre las tablas que has creado, los nombres de los campos, etc, poco más código o consejo te puedo dar.
Si no me das más datos sobre las tablas que has creado, los nombres de los campos, etc, poco más código o consejo te puedo dar.
Hola ditman este código solo me muestra los registros pero no la imagen
<?PHP
$conexion = mysql_connect ("localhost", "root", "123")
or die ("No se puede conectar con el servidor");
mysql_select_db ("empresa")
or die ("No se puede seleccionar la base de datos");
// Enviar consulta
$instruccion = "select * from productos order by fecha desc";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
print ("<TABLE>\n");
print ("<TR>\n");
print ("<TH>Producto</TH>\n");
print ("<TH>Descripcion</TH>\n");
print ("<TH>Precio</TH>\n");
print ("<TH>Contacto</TH>\n");
print ("<TH>Fecha</TH>\n");
print ("<TH>Imagen</TH>\n");
print ("</TR>\n");
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['producto'] . "</TD>\n");
print ("<TD>" . $resultado['descripcion'] . "</TD>\n");
print ("<TD>" . $resultado['precio'] . "</TD>\n");
print ("<TD>" . $resultado['contacto'] . "</TD>\n");
print ("<TD>" . date2string($resultado['fecha']) . "</TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");
}
// Cerrar conexión
mysql_close ($conexion);
?>
Y como aria para que me muestre las imágenes de cada registro que corresponda, las imágenes lo tengo en una carpeta img.
Espero tu ayuda...
<?PHP
$conexion = mysql_connect ("localhost", "root", "123")
or die ("No se puede conectar con el servidor");
mysql_select_db ("empresa")
or die ("No se puede seleccionar la base de datos");
// Enviar consulta
$instruccion = "select * from productos order by fecha desc";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
print ("<TABLE>\n");
print ("<TR>\n");
print ("<TH>Producto</TH>\n");
print ("<TH>Descripcion</TH>\n");
print ("<TH>Precio</TH>\n");
print ("<TH>Contacto</TH>\n");
print ("<TH>Fecha</TH>\n");
print ("<TH>Imagen</TH>\n");
print ("</TR>\n");
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['producto'] . "</TD>\n");
print ("<TD>" . $resultado['descripcion'] . "</TD>\n");
print ("<TD>" . $resultado['precio'] . "</TD>\n");
print ("<TD>" . $resultado['contacto'] . "</TD>\n");
print ("<TD>" . date2string($resultado['fecha']) . "</TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");
}
// Cerrar conexión
mysql_close ($conexion);
?>
Y como aria para que me muestre las imágenes de cada registro que corresponda, las imágenes lo tengo en una carpeta img.
Espero tu ayuda...
Añade debajo de:
print ("<TD>" . date2string($resultado['fecha']) . "</TD>\n");
Algo parecido a:
print ("<TD><img src=\"img/" . $resultado['imagen'] . "\" /></TD>\n");
(O como sea que se llame la columna donde tienes la imagen)
print ("<TD>" . date2string($resultado['fecha']) . "</TD>\n");
Algo parecido a:
print ("<TD><img src=\"img/" . $resultado['imagen'] . "\" /></TD>\n");
(O como sea que se llame la columna donde tienes la imagen)
Gracias amigo eres lo máximo ya me salio, en la consulta que lo he hecho solo lo estoy mostrando datos del campo producto y la imagen, y ahora la duda que tengo es como puedo hacer un enlace desde la imagen para ver todos los datos de mi tabla productos, osea al hacer click en la imagen que me muestre todos lo datos de mi tabla.
$instruccion = "select * from productos order by fecha desc";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
print ("<TABLE>\n");
print ("<TR>\n");
print ("<TH>Producto</TH>\n");
print ("<TH>Imagen</TH>\n");
print ("</TR>\n");
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['producto'] . "</TD>\n");
print ("<TD><img src=\"img/" . $resultado['imagen'] . "\" width='200' height='200' border='1' align='left'/></TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");
}
// Cerrar conexión
mysql_close ($conexion);
?>
como puedo hacer un enlace desde este codigo:
print ("<TD><img src=\"img/" . $resultado['imagen'] . "\" width='200' height='200' border='1' align='left'/></TD>\n");
Para que me muestre todos los datos de mi tabla productos.
Espero no molestarlo...
$instruccion = "select * from productos order by fecha desc";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
print ("<TABLE>\n");
print ("<TR>\n");
print ("<TH>Producto</TH>\n");
print ("<TH>Imagen</TH>\n");
print ("</TR>\n");
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['producto'] . "</TD>\n");
print ("<TD><img src=\"img/" . $resultado['imagen'] . "\" width='200' height='200' border='1' align='left'/></TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");
}
// Cerrar conexión
mysql_close ($conexion);
?>
como puedo hacer un enlace desde este codigo:
print ("<TD><img src=\"img/" . $resultado['imagen'] . "\" width='200' height='200' border='1' align='left'/></TD>\n");
Para que me muestre todos los datos de mi tabla productos.
Espero no molestarlo...
Lo primero que vas a necesitar es una página PHP que coja un parámetro id_producto, y seleccione de la bbdd el producto.
Desconozco tu estructura de tablas pero sería algo similar a
<?php
$id_producto = $_GET['id_producto'];
$instruccion = "select * from productos where `id_producto` = $id_producto";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas == 1)
{
$resultado = mysql_fetch_array ($consulta);
Y a partir de aquí pones el resto de la lógica para pintar producto como quieras...
En la página del listado, únicamente tienes que poner un link con un parámetro, para cada línea, de esta manera:
<a href="detalle.php?id_producto=$id_producto">Ver detalle</a>
Y al hacer click ahí, irás a ver el detalle del producto.
Desconozco tu estructura de tablas pero sería algo similar a
<?php
$id_producto = $_GET['id_producto'];
$instruccion = "select * from productos where `id_producto` = $id_producto";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas == 1)
{
$resultado = mysql_fetch_array ($consulta);
Y a partir de aquí pones el resto de la lógica para pintar producto como quieras...
En la página del listado, únicamente tienes que poner un link con un parámetro, para cada línea, de esta manera:
<a href="detalle.php?id_producto=$id_producto">Ver detalle</a>
Y al hacer click ahí, irás a ver el detalle del producto.
Hola ditman mil disculpas por molestarlo y gracias por las respuestas.
Bueno no logro hacerlo y espero que me ayudes:
Con esta página muestro el nombre del producto y su imagen y hay un enlace en la imagen y muestra otra página que es detalle_producto.php pero me sale error "Fallo en la consulta"
Ahh una cosa cuando lo pongo las dos líneas de código de esta página productos.php
$id_producto = $_GET['id_producto'];
$instruccion = "select * from productos WHERE cod_producto = '$id_producto'";
No me muestra la consulta por eso lo tengo como comentario y sin esos dos lineas de código si me muestra los datos y la imagen
Productos.php
<?PHP
// Enviar consulta
//$id_producto = $_GET['id_producto'];
//$instruccion = "select * from productos WHERE cod_producto = '$id_producto'";
$instruccion = "select * from productos order by fecha desc";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
print ("<TABLE>\n");
print ("<TR>\n");
print ("<TH>Producto</TH>\n");
print ("<TH>Imagen</TH>\n");
print ("</TR>\n");
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['producto'] . "</TD>\n");
print ("<TD><A TARGET='_blank' HREF='detalle_productos.php?id_producto=$cod_producto'> <img src=\"img/" . $resultado['imagen'] . "\" width='150' height='100' border='1' align='left'/></TD>\n");
if ($resultado['imagen'] != "")
print ("<TD><A TARGET='_blank' HREF='img/" . $resultado['imagen'] .
"'><IMG BORDER='0' SRC='img/ico-fichero.gif' ALT='Ampliar Imagen'></A></TD>\n");
else
print ("<TD> </TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");
}
else
print ("No hay productos disponibles");
// Cerrar conexión
mysql_close ($conexion);
?>
Creo que el error que tengo es en esta página espero su ayuda.
En la url me sale esta dirección: http://localhost/cs3/ver_productos.php?id_producto=
Y un mensaje "fallo en la consulta"
Detalle_producto
<?PHP
// Enviar consulta
$id_producto = $_GET['id_producto'];
$instruccion = "select * from productos WHERE cod_poducto = '$id_producto'";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
?>
// Mostrar resultados de la consulta
<BODY>
<table border="1" align="center">
<tr>
<td><strong>Codigo</strong></td>
<td><?php echo $resultado['cod_producto']; ?> </td>
</tr>
<tr>
<td><strong>Producto</strong></td>
<td><?php echo $resultado['producto']; ?> </td>
</tr>
<tr>
<td><strong>Descripcion</strong></td>
<td><?php echo $resultado['descripcion']; ?> </td>
</tr>
<tr>
<td><strong>Precio</strong></td>
<td><?php echo $resultado['precio']; ?> </td>
</tr>
<tr>
<td><strong>contacto</strong></td>
<td><?php echo $resultado['contacto']; ?> </td>
</tr>
<tr>
<td><strong>imagen</strong></td>
<td><?php echo $resultado['contacto']; ?> </td>
</tr>
</table>
</BODY>
Bueno no logro hacerlo y espero que me ayudes:
Con esta página muestro el nombre del producto y su imagen y hay un enlace en la imagen y muestra otra página que es detalle_producto.php pero me sale error "Fallo en la consulta"
Ahh una cosa cuando lo pongo las dos líneas de código de esta página productos.php
$id_producto = $_GET['id_producto'];
$instruccion = "select * from productos WHERE cod_producto = '$id_producto'";
No me muestra la consulta por eso lo tengo como comentario y sin esos dos lineas de código si me muestra los datos y la imagen
Productos.php
<?PHP
// Enviar consulta
//$id_producto = $_GET['id_producto'];
//$instruccion = "select * from productos WHERE cod_producto = '$id_producto'";
$instruccion = "select * from productos order by fecha desc";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
// Mostrar resultados de la consulta
$nfilas = mysql_num_rows ($consulta);
if ($nfilas > 0)
{
print ("<TABLE>\n");
print ("<TR>\n");
print ("<TH>Producto</TH>\n");
print ("<TH>Imagen</TH>\n");
print ("</TR>\n");
for ($i=0; $i<$nfilas; $i++)
{
$resultado = mysql_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['producto'] . "</TD>\n");
print ("<TD><A TARGET='_blank' HREF='detalle_productos.php?id_producto=$cod_producto'> <img src=\"img/" . $resultado['imagen'] . "\" width='150' height='100' border='1' align='left'/></TD>\n");
if ($resultado['imagen'] != "")
print ("<TD><A TARGET='_blank' HREF='img/" . $resultado['imagen'] .
"'><IMG BORDER='0' SRC='img/ico-fichero.gif' ALT='Ampliar Imagen'></A></TD>\n");
else
print ("<TD> </TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");
}
else
print ("No hay productos disponibles");
// Cerrar conexión
mysql_close ($conexion);
?>
Creo que el error que tengo es en esta página espero su ayuda.
En la url me sale esta dirección: http://localhost/cs3/ver_productos.php?id_producto=
Y un mensaje "fallo en la consulta"
Detalle_producto
<?PHP
// Enviar consulta
$id_producto = $_GET['id_producto'];
$instruccion = "select * from productos WHERE cod_poducto = '$id_producto'";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
?>
// Mostrar resultados de la consulta
<BODY>
<table border="1" align="center">
<tr>
<td><strong>Codigo</strong></td>
<td><?php echo $resultado['cod_producto']; ?> </td>
</tr>
<tr>
<td><strong>Producto</strong></td>
<td><?php echo $resultado['producto']; ?> </td>
</tr>
<tr>
<td><strong>Descripcion</strong></td>
<td><?php echo $resultado['descripcion']; ?> </td>
</tr>
<tr>
<td><strong>Precio</strong></td>
<td><?php echo $resultado['precio']; ?> </td>
</tr>
<tr>
<td><strong>contacto</strong></td>
<td><?php echo $resultado['contacto']; ?> </td>
</tr>
<tr>
<td><strong>imagen</strong></td>
<td><?php echo $resultado['contacto']; ?> </td>
</tr>
</table>
</BODY>
En la tabla de productos tienes que tener un campo 'id_producto' que sirva de identificador de productos, si no lo tienes mi ejemplo (que lo escribí sin conocer tu estructura de BBDD) no va a funcionar.
Agrega el campo, asegúrate que los productos tienen un ID único (con una Primary Key y Auto-increment) y algo similar a mi ejemplo ya debería darte resultados.
Agrega el campo, asegúrate que los productos tienen un ID único (con una Primary Key y Auto-increment) y algo similar a mi ejemplo ya debería darte resultados.
- Compartir respuesta
- Anónimo
ahora mismo