Foros del Web » Programando para Internet » PHP »

Consulta: mostrar imagen según ancho

Estas en el tema de Consulta: mostrar imagen según ancho en el foro de PHP en Foros del Web. he buscado, pero no he encontrado nada. intento hacer la consulta asi: ... WHERE imagesx(foto) > 180 ORDER BY desc "); pero no va. :( ...
  #1 (permalink)  
Antiguo 19/12/2005, 19:46
aso
 
Fecha de Ingreso: septiembre-2003
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 0
Consulta: mostrar imagen según ancho

he buscado, pero no he encontrado nada.

intento hacer la consulta asi:

... WHERE imagesx(foto) > 180 ORDER BY desc ");

pero no va.
:(

tengo guardadas las url de las imagenes (en el campo foto) la idea es mostrar solo las imagenes que tengan un ancho superior a 180.

alguien sabe como hacerlo?

gracias.
  #2 (permalink)  
Antiguo 20/12/2005, 05:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Así tal cual no puedes usar en una sentencia SQL una función PHP .. Realmente deberías indicar exactamente como pretendes usar esa sentencia SQL.

A todo esto .. imagesx() es una función que trabaja con GD (www.php.net/gd) y requeriría de un "resource" de imagen .. así que para usar dicha función te haría falta por lo menos usar algo tipo:

Código PHP:
$img=imagecreatefromjpeg($foto); 
$x=imagesx($img); 
Pero para no liarte con eso .. ya que tu tienes un archivo físicamente en el sistema de archivos del servidor, usa:

getimagesize() para obtener el tamaño de la imagen.

De todas formas .. como función PHP que es getimagesize() o la anterior alternativa, .. no puedes usarlo como parte de una sentencia SQL como pretendías hacerlo. Tal cual lo tienes .. debes obtener TODO el resultado de tu consulta SQL y vía PHP hacer el "if()" (condicional) en base a la aplicación de esa función PHP para mostrarla o no o lo que hagas con ella.

Si tienes que hacer consultas SQL de ese tipo muy amenudo .. para optimizar el sistema, a la hora de registrar tu imagen en tu BD (su nombre) registra también su tamaño (X-Y) aplicando esas funciones a la hora de "subir" a tu BD esa imagen .. y actualiza dicho dato si modificas tu imagen. Con eso no hará falta ningún cálculo a la hora de presentar la imagen por qué ya lo harás a la hora de "subirla" a tu BD.

En general .. lo ideal es almacenar de la imagen la mayor cantidad de información posible de esta: tamaño en bytes .. tamaño X/Y ... nombre .. tipo de imagen (MIME) .. etc. Así podrás "operar" a nivel SQL muuuuy rápido y de forma Optima.

Un saludo,
  #3 (permalink)  
Antiguo 20/12/2005, 07:54
aso
 
Fecha de Ingreso: septiembre-2003
Mensajes: 20
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias!

voy a intentarlo, a ver que tal va.
:)
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 10:54.