Foros del Web » Programando para Internet » PHP »

listar imagenes y campos de una tabla

Estas en el tema de listar imagenes y campos de una tabla en el foro de PHP en Foros del Web. Hola a todos: Si este hilo no es aquí que el moderador lo ponga donde corresponda. He estado buscando pero no encuentro nada que se ...
  #1 (permalink)  
Antiguo 24/10/2009, 16:56
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
listar imagenes y campos de una tabla

Hola a todos:

Si este hilo no es aquí que el moderador lo ponga donde corresponda.

He estado buscando pero no encuentro nada que se le parezca, aunque creo que mis conocimientos son un poco limitados.

El problema es que tendo dos tablas. Una con nombre de productos y la otra con los nombre de los ficheros de las images. La images propiamente las almaceno en otra carpetas.

La historia sería una tabla que liste:

imagen(producto) Nombre Precio. Existencias.

La imagen esta en formato reducido, pero aun así el alto de la linea no es lo mismo que el nombre del producto. Entonces sería interesante que las celdas de Nombre, precio y Existencias se ajustasen el alto.

Entiendo que primero hay que currar un poco, pero es que llevo demasiando y la verdad estoy más perdido que un pato en el desierto.

Si tienen por ahí algún trozo de código.

Gracias.
  #2 (permalink)  
Antiguo 24/10/2009, 19:09
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: listar imagenes y campos de una tabla

<td style="vertical-align:top;">...<td/> ¿?
  #3 (permalink)  
Antiguo 25/10/2009, 02:53
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: listar imagenes y campos de una tabla

Gracias por su ayuda.

Pero mi mayor problema es sacar en una linea lo siguiente:

(Imagen_del_producto) ....... NombreDelProducto .... Precio .... Existencias.

Teniendo en cuenta que la imagen del producto esta en una carpeta, que un producto puede tener varias imagenes y que el nombre de la imagen esta almacenada en otra tabla diferente a la de los productos.

Gracias.
  #4 (permalink)  
Antiguo 25/10/2009, 03:04
 
Fecha de Ingreso: mayo-2009
Mensajes: 200
Antigüedad: 14 años, 11 meses
Puntos: 7
Respuesta: listar imagenes y campos de una tabla

asi??

<tr style="vertical-align:top;">
<td style="vertical-align:top;">
(Imagen_del_producto)
</td>
<td style="vertical-align:top;">
NombreDelProducto
</td>
<td style="vertical-align:top;">
NombreDelProducto
</td>
<td style="vertical-align:top;">
Precio
</td>
<td style="vertical-align:top;">
Existencias
</td>
</tr>
  #5 (permalink)  
Antiguo 25/10/2009, 11:37
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: listar imagenes y campos de una tabla

No, no es esto son las sentencias sql y luego la construccion de la tabla.

De todas formas, muchas gracias por vuestra dedicación.

Un Saludo.
  #6 (permalink)  
Antiguo 25/10/2009, 12:54
Avatar de luckystrikede11  
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: listar imagenes y campos de una tabla

Cita:
Iniciado por ManelGomez Ver Mensaje
Gracias por su ayuda.

Pero mi mayor problema es sacar en una linea lo siguiente:

(Imagen_del_producto) ....... NombreDelProducto .... Precio .... Existencias.

Teniendo en cuenta que la imagen del producto esta en una carpeta, que un producto puede tener varias imagenes y que el nombre de la imagen esta almacenada en otra tabla diferente a la de los productos.

Gracias.
el producto tiene que tener una imagen referencial.. para que cuando realices la consulta por productos.. hacer la llamada a esa imagen

puedes hacer algo asi

mysql_query("SELECT a.id,a.nombre,a.precio,a.existencia,b.id_prod,b.im agen FROM productos a,imagenes b WHERE a.id=b.id_pro")

espero que te ayude en algo, saludos
  #7 (permalink)  
Antiguo 25/10/2009, 12:59
Avatar de luckystrikede11  
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: listar imagenes y campos de una tabla

el reporte podria ser algo asi:

Código PHP:

$sql 
mysql_query("SELECT a.id,a.nombre,a.precio,a.existencia,b.id_prod,b.imagen FROM productos a,imagenes b WHERE a.id=b.id_pro");

echo 
"<table>";
while(
$row mysql_fetch_array($sql)){
      echo 
"<tr>";
      echo 
"<td>".$row['imagen']."</td>";
      echo 
"<td>".$row['nombre']."</td>";
      echo 
"<td>".$row['precio']."</td>";
       echo 
"</tr>";
}
echo 
"</table>"
  #8 (permalink)  
Antiguo 25/10/2009, 14:42
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: listar imagenes y campos de una tabla

Gracias por tu colaboración.

Tu consulta sql esta bien, pero ten en cuenta que no todos los productos pueden tiener imagen. Con la sentencia que planteas creo y si no me equivoco solo recogerias los productos que tienen imagenes. Obligaria a tener un control de que cuando se diera de alta un producto inmediatamente asignar una imagen, y a veces los usuarios tienen mucho trabajo y lo dejan para más tarde y luego se olvidan.

La historia seria que cuando vas recoriendo los registros de los productos vas mirando si en la tabla de las imagenes (Que por ciento esta almacenado solo el nombre del fichero, ya que el fichero esta en un directorio del sistema) hay la imagen principal, ya que un producto puede tener más de una.

Si en la tabla donde almacenas los nombres de los ficheros existe la imagen principal, esta imagen la visualizas en la misma linea que el nombre, precio, etc.

He intentado hacer algo así pero no me muestra nada. Para ir probando intento sacar el nombre del fichero, pero no sale.

Si saliera, ya tengo el 50 % del trabajo echo, ya que lo siguente sería concatenar el directorio junto con el nombre para mostrar la imagen.

Código PHP:

          <?php
              $_pagi_sql 
"SELECT IdRef, CP, DP, PP FROM Productos Where CPt='$_POST[pb]'";
              
$_pagi_cuantos "10";
              
$_pagi_nav_num_enlaces "10";
              
$query mysql_query($_pagi_sql);
              
$n2 mysql_num_rows($query);
              include(
"panel/paginator.inc.php");
                while (
$sql2 mysql_fetch_array($_pagi_result)) {
                  
$sqlfotos mysql_query("SELECT idRef, CodiFoto, FotoGran, FotoPeque FROM Fotos Where IdRef=$sql2[idRef] LIMIT 1");
                  
$rsfoto mysql_fetch_array($sqlfotos);
                  
mysql_free_result($rsfotos);
                  echo
"<tr><td height='18' bgcolor='#CCCCCC'><font face='Verdana' size='1' color='#000000'>&nbsp;$rsfoto[FotoPeque]</font></td>
                  <td height='18' bgcolor='#CCCCCC' align='center'><font face='Verdana' size='1' color='#000000'>$sql2[CP]</font></td>
                  <td height='18' bgcolor='#CCCCCC'><p align='center'><font face='Verdana' size='1' color='#000000'>$sql2[PP]</font></td>
                  <td bgcolor='#CCCCCC'><p align='right'></tr>"
;
                }
          
?>
El campo [FotoPeque] seria el nombre del fichero que esta almacenado en un directorio del sistema.

Un Saludo.

PD. Vaya rollazo, que he pegado.
  #9 (permalink)  
Antiguo 25/10/2009, 17:57
Avatar de luckystrikede11  
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: listar imagenes y campos de una tabla

Cita:
Iniciado por ManelGomez Ver Mensaje
Gracias por tu colaboración.

no todos los productos pueden tiener imagen. Con la sentencia que planteas creo y si no me equivoco solo recogerias los productos que tienen imagenes. Obligaria a tener un control de que cuando se diera de alta un producto inmediatamente asignar una imagen, y a veces los usuarios tienen mucho trabajo y lo dejan para más tarde y luego se olvidan.

La historia seria que cuando vas recoriendo los registros de los productos vas mirando si en la tabla de las imagenes (Que por ciento esta almacenado solo el nombre del fichero, ya que el fichero esta en un directorio del sistema) hay la imagen principal, ya que un producto puede tener más de una.

Si en la tabla donde almacenas los nombres de los ficheros existe la imagen principal, esta imagen la visualizas en la misma linea que el nombre, precio, etc.
Lo podrias resolver de esta forma:

Código PHP:
$sql mysql_query("SELECT a.id,a.nombre,a.precio,a.existencia,b.id_prod,b.imagen FROM productos a,imagenes b WHERE a.id=b.id_pro");

echo 
"<table>";
while(
$row mysql_fetch_array($sql)){
      echo 
"<tr>";
      if(
file_exists('ruta/de/la/imagen/'.$row['imagen'])){
           echo 
"<td>".$row['imagen']."</td>";
     }
     else{
           echo 
"<td><img src='ruta/de/la/imagen/sin-imagen.jpg'></td>";
     }
      echo 
"<td>".$row['nombre']."</td>";
      echo 
"<td>".$row['precio']."</td>";
       echo 
"</tr>";
}
echo 
"</table>"
si no hay imagen en la BD va a retonar un NULL entonces mostraria una imagen alternativa.

Saludos
  #10 (permalink)  
Antiguo 26/10/2009, 16:27
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: listar imagenes y campos de una tabla

Hola lucky.

Casi lo tengo. Ahora me saca el nombre de la imagen que tengo almacenada en un directorio. Que es lo que falta, pues anteponer con su sintaxis la ruta y nombre del fichero.


Código PHP:

<?php
  $_pagi_sql 
"SELECT IdRef, CP, DP, PP, CP FROM Productos Where CP='$_GET[pb]'";
  
$_pagi_cuantos "10";
  
$_pagi_nav_num_enlaces "10";
  
$query mysql_query($_pagi_sql);
  
$n2 mysql_num_rows($query);
  include(
"panel/paginator.inc.php");
  while (
$sql2 mysql_fetch_array($_pagi_result)) {
    
$resp3 mysql_query("SELECT IdRef, FotoPeque FROM Fotos Where IdRef='$sql2[IdRef]'");
    
$rsfotos mysql_fetch_assoc($resp3);
    echo 
"<tr><td'>$rsfotos[FotoPeque]</td>
                     <td>$sql2[CP]</td>
                     <td>$sql2[PP]</td>
              </tr>"
;
  }
?>
Entonces lucky, me podrias especificar la sintaxis para sustituir $rsfotos[FotoPeque] por lo correcto para sacar la imagen. Seria ruta+$rsfotos[FotoPeque]

Sobre todo sintaxis.

Gracias.
  #11 (permalink)  
Antiguo 26/10/2009, 20:57
Avatar de luckystrikede11  
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: listar imagenes y campos de una tabla

Cita:
Iniciado por ManelGomez Ver Mensaje
Hola lucky.

Entonces lucky, me podrias especificar la sintaxis para sustituir $rsfotos[FotoPeque] por lo correcto para sacar la imagen. Seria ruta+$rsfotos[FotoPeque]
correcto, debes agregar la ruta relativa del directorio de las imagenes + el nombre de la imagen

asumiendo que la llamada es desde el directorio raiz y la carpeta se llama imagenes.

entonces tenemos,

Código PHP:

if(file_exists("imagenes/".$rsfotos[FotoPeque])){
           echo 
"<td><img src='imagenes/".$rsfotos[FotoPeque]."' ></td>";
     }
else{
           echo 
"<td><img src=imagenes/sin-imagen.jpg'></td>";
     } 
  #12 (permalink)  
Antiguo 27/10/2009, 02:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 200
Antigüedad: 14 años, 11 meses
Puntos: 7
Respuesta: listar imagenes y campos de una tabla

o utilisar una imagen por defaul para los articulos sin imagen
  #13 (permalink)  
Antiguo 30/10/2009, 13:20
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: listar imagenes y campos de una tabla

Hola:

Estoy con la sintaxis, que me muerdo. Todo lo anterior bien. No he puesto imagen por defecto. He un simple que si no hay imagen en el campo no nuestre nada.

Ahora quiero que un enlaces de la imagen a una galeria de imagenes del registro. Entonces como se podria hacer un sql de la tabla de fotos del producto, cuando no sebes el registro que has clikeado.

Un Saludo.
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 21:58.