Foros del Web » Programando para Internet » PHP »

Ver imagenes con switch

Estas en el tema de Ver imagenes con switch en el foro de PHP en Foros del Web. El problema que tengo es que quiero ver una serie de imagenes segun la extension que tenga y estoy probando con switch para que me ...
  #1 (permalink)  
Antiguo 28/04/2007, 04:39
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Ver imagenes con switch

El problema que tengo es que quiero ver una serie de imagenes segun la extension que tenga y estoy probando con switch para que me direja a una ruta diferente (thumbjpg.php o thumbgif.php)
Me sale error que en el echo tengo algo mal, y yo creo que es $row['foto_producto'] que esoy poniendo.. o sabeis dedicme si es alguna otra cosa?

<?php
$link=Conectarse();
$result=mysql_query("select * from productos WHERE id='".$_GET['id']."'",$link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
$nombre = $row['nombre'];
}
?>
<?php
switch ($row["foto_producto"]) {
case "jpg":
echo '<img src="thumbjpg.php?ruta=fotos_productos/$row['foto_producto']&ancho=200&alto=250 border=1">';
break;
case "gif":
echo '<img src="thumbgif.php?ruta=fotos_productos/$row['foto_producto']&ancho=200&alto=250 border=1';
break;
}
?>
GRACIAS::::::
  #2 (permalink)  
Antiguo 28/04/2007, 11:04
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Ver imagenes con switch

Hola Raules, $row["foto_producto"] que valor guarda? la extencion de la imagen o el nombre de la imagen. Partiendo de ahi si guarda el nombre de la img pues tu switch nunca se ejecuta. Ahora si fuese asi(si guarda la extencion de la img) pues tampoco te resultaria puesto q no pasas el nombre de la imagen(solo estaria pasando la extencion).

Saludos
__________________

  #3 (permalink)  
Antiguo 28/04/2007, 11:25
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

$row["foto_producto"] es donde se guarda el nombre completo de la imagen y lo que yo quiero es poder ver la imagen... pero tengo que hacerlo en un diferente thumb segun la extension tenga... Habría alguna solucion?
  #4 (permalink)  
Antiguo 28/04/2007, 11:45
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Ver imagenes con switch

Haber si esto te resulta:
Código PHP:
<?php
$val 
substr($row["foto_producto"], -13);
switch (
$val) {
case 
"jpg":
echo 
'<img src="thumbjpg.php?ruta=fotos_productos/$row['foto_producto']&ancho=200&alto=250 border=1">';
break;
case 
"gif":
echo 
'<img src="thumbgif.php?ruta=fotos_productos/$row['foto_producto']&ancho=200&alto=250 border=1';
break;
}
?>
__________________

  #5 (permalink)  
Antiguo 28/04/2007, 12:23
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

Me da el siguiente error:

Código:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/namuele/public_html/admin/productos/ver.php on line 124
Y la linea 124 es esto: yo creo que al tener el row tendría que poner comillas simples o algo no?

Código PHP:
echo '<img src="thumbjpg.php?ruta=fotos_productos/$row['foto_producto']&ancho=200&alto=250 border=1">' 
;
  #6 (permalink)  
Antiguo 28/04/2007, 12:31
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Ver imagenes con switch

Error de sintaxis, debe estar escrito asi:

Código PHP:
echo '
<img src="thumbjpg.php?ruta=fotos_productos/'
$row["foto_producto"]' height=200 width=250 border=1">'
  #7 (permalink)  
Antiguo 28/04/2007, 12:34
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Ver imagenes con switch

Ahh! Perdon deberia de ser asi:
Código PHP:
<?php
$val 
substr($row["foto_producto"], -13);
switch (
$val) {
case 
"jpg":
echo 
'<img src="thumbjpg.php?ruta=fotos_productos/'.$row['foto_producto'].'&ancho=200&alto=250 border=1">';
break;
case 
"gif":
echo 
'<img src="thumbgif.php?ruta=fotos_productos/'.$row['foto_producto'].'&ancho=200&alto=250 border=1">';
break;
}
?>
__________________

  #8 (permalink)  
Antiguo 28/04/2007, 12:35
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

Cita:
Iniciado por Ioryo Ver Mensaje
Error de sintaxis, debe estar escrito asi:

Código PHP:
echo '
<img src="thumbjpg.php?ruta=fotos_productos/'
$row["foto_producto"]&ancho=200&alto=250 border=1">'; 
Sigue dandome ese error lo he cambiado a este otro que creo que seria el bueno y no me da error pero no me enseña nada...

Código PHP:
echo '<img src=thumbjpg.php?ruta=fotos_productos/'.$row["foto_producto"].'&ancho=200&alto=250 border=1>'
  #9 (permalink)  
Antiguo 28/04/2007, 12:38
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Ver imagenes con switch

Lo pongo de vuelta por que antes edite y no agarraste la parte editada:

Código PHP:
echo '
<img src="thumbjpg.php?ruta=fotos_productos/'
$row["foto_producto"]'" height=200 width=250 border=1>
'

Si no muestra es por que no hay nada en la vuelta que se encuentra.
  #10 (permalink)  
Antiguo 28/04/2007, 12:46
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

No se que es lo que ocurre pero no se ve la imagen con esto pero en el caso de qeu lo ponga por ejemplo de la siguiente manera si va:

<img src="thumbjpg.php?ruta=fotos_productos/<?=$row['foto_producto']?>&ancho=200&alto=250 border=1">

Pero necesito que si en el caso de que la extension de la imagen sea gif me lleve a otra url
  #11 (permalink)  
Antiguo 28/04/2007, 12:56
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

Yo lo que quiero conseguir con esto es, que si la imagen es de una determinada extension vaya a una url o a otra... Pero no se como podrá ser mejor... o si habrá otro codigo recomendado.
  #12 (permalink)  
Antiguo 28/04/2007, 13:04
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Ver imagenes con switch

Raules probaste el la correcion q puse(la segunda). Ahora si no te muestra nada puede ser por que la ruta de la imagen no esta bien o por que tu script tiene errores.
__________________

  #13 (permalink)  
Antiguo 28/04/2007, 13:07
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

si probe con con que me dijiste la segunda pero me daba el mismo error. Y el scrip que tengo en el thumbjpg.php no puede tener error porque si quito el switch y pongo esto <img src="thumbjpg.php?ruta=fotos_productos/<?=$row['foto_producto']?>&ancho=200&alto=250 border=1">

Si veo perfectamente la imagen. Quizas sea porque en el switch no me detectaria en el case la extension jpg o gif.. No se..
  #14 (permalink)  
Antiguo 28/04/2007, 13:07
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Ver imagenes con switch

A ver, nose por que queres hacer eso, pero lo que te puedo recomendar es, al guardar la imagen, tambien guardas en una variable la extension de la imagen, y haces un pequeño Switch que diga que si esa variable es jpg, haga tal cosa, y si es gif, haga tal otra; no es tan complicado de esa manera, y la seleccion de la extension la haces facil y cortito con un select/option.
  #15 (permalink)  
Antiguo 28/04/2007, 13:09
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

No abria algun sistema que me lo detecte automaticamente en vez de crear en el formulario el tipo de extension?
  #16 (permalink)  
Antiguo 28/04/2007, 13:13
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Ver imagenes con switch

Sinceramente desconozco, te mentiria si asintiera, soy bastante novato para responderte a eso, pero no es la gran cosa lo que te propuse, es seleccionar la extension nada mas.

Sino existen fnciones, aunque nose si en php, que toman X cantidad de caracteres de la derecha hacia la izquierda, por ejemplo en Nw C: GetStringRight(3, sString);

Ahora en php no tengo idea.
  #17 (permalink)  
Antiguo 28/04/2007, 13:16
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

Cita:
Iniciado por Ioryo Ver Mensaje
Sinceramente desconozco, te mentiria si asintiera, soy bastante novato para responderte a eso, pero no es la gran cosa lo que te propuse, es seleccionar la extension nada mas.

Sino existen fnciones, aunque nose si en php, que toman X cantidad de caracteres de la derecha hacia la izquierda, por ejemplo en Nw C: GetStringRight(3, sString);

Ahora en php no tengo idea.
Bueno de todas formas muchisimas gracias por tu ayuda, a ver si alguien puede echarme una mano en esto.. pero gracias tio de verdad.
  #18 (permalink)  
Antiguo 28/04/2007, 20:33
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Ver imagenes con switch

Cita:
Iniciado por Raules Ver Mensaje
No abria algun sistema que me lo detecte automaticamente en vez de crear en el formulario el tipo de extension?
Desde hace rato sigo tu problema, pero por falta de tiempo no habia respondido.

Segun veo, guardas los nombres de las imagenes y su extencion en una tabla y generas la consulta, para que te devuelva tanto el nombre como la extencion y en la cita preguntas si existe un sistema mas eficiente para detectar automaticamente el tipo de extencion.

Mis preguntas:

1.-¿Como es tu formulario que sube las imagenes?
2.-¿Como es el codigo que recibe las imagenes e introduce el nombre y extencion en la tabla imagenes?
3.-¿Por que mandas la ubicacion de tus imagenes por GET (ruta=fotos_productos/$row['foto_producto'])?

Estas preguntas las realizo, por que no me parece muy logicos tus procesos, para resolver el problema.

1.- El formulario solo deberia de mandar la imagen.
2.- El codigo que inserta el nombre de la imagen, ya deberia detectar el tipo de archivo que recibe y emitir automaticamente una extencion.
($_FILES['foto']['name'],$_FILES['foto']['size'],$_FILES['foto']['type'])
3.- Tener una tabla que contenga exclusivamente el nombre de la imagen, extencion y un id de identificacion, para despues relacionarla con tu tabla de productos. (Puedes crear una tercera tabla que contenga un mismo id del producto, posibilitandote relacionar mas fotos a un mismo producto. Normalizar).
4.-No necesitas varios archivos para dar tratamiento a todos los tipos de imagenes que surjan. (thumbjpg.php, thumgif.php)
5.- Crear una consulta que unicamente mande la clave o id del producto a tu archivo thumb.php, que evidentemente pueda ser capas de dar tratamiento a los formatos jpg y gif, asi tambien poder establecer ancho y alto de la foto, como en un principio me parecio que lo hacia. Tambien deberia mandar las cabecaras que identifiquen el tipo de imagen que es (Content-type).

Código PHP:
echo '<img src="thumbjpg.php?ruta=fotos_productos/$row['foto_producto']&ancho=200&alto=250 border=1">';

Deberia ser asi:

echo 
'<img src="http://'.$_SERVER['HTTP_HOST'].'/thumb.php?fotoid='.$row['foto_id'].'&ancho=200&alto=250" border=1/>'
Ahora ya en el punto principal $_FILES['foto']['type'] puede contener valores diferentes, por el tipo de navegador que manejes. Puedes recibir resultados como estos. image/x-png, image/jpeg,image/pjpeg,image/gif.

Ya por ultimo, te he dado ciertas pistas para que avances y resuelvas tu problema.

Suerte.
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.

Última edición por ProgramadorMax; 28/04/2007 a las 20:39
  #19 (permalink)  
Antiguo 29/04/2007, 07:36
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

Utilizo este codigo para insertar la imagen..

Código PHP:
<?php        
$extension 
explode(".",$archivo_name);
$num count($extension)-1;
if((
$extension[$num] == "jpg") OR ($extension[$num] == "gif") OR ($extension[$num] == "JPG") OR ($extension[$num] == "bmp") OR ($extension[$num] == "GIF")) 
{   
    if(
$archivo_size 70000000)   
    {  
       if(!
copy($archivo,"fotos_productos/".$archivo_name))  
           {  
             
           }   
           else  
           {  
           
$link=Conectarse();  
           
mysql_query("INSERT INTO productos (id, nombre, en_name, descripcion, en_description, precio, descuento, oferta, referencia, estilo, en_style, tipo, en_tipe, estado, fabricante, foto_producto) VALUES ('','$nombre','$en_name','$descripcion','$en_description','$precio','$descuento','$oferta','$referencia','$estilo','$en_style','$tipo','$en_tipe','$estado','$fabricante', '$archivo_name')",$link); 
          
           }     
?>
Y luego la consulta que hago es esta (me lleva a esta consulta un enlace anterior):
Código PHP:
<?php 
   $link
=Conectarse(); 
   
$result=mysql_query("select * from productos WHERE id='".$_GET['id']."'",$link); 
   if (
$row mysql_fetch_array($result)){ 
        
mysql_field_seek($result,0);
    
$nombre $row['nombre'];
    }
    
?>
<img src="thumb.php?ruta=fotos_productos/<?=$row['foto_producto']?>&ancho=200&alto=250 border=1">
Que el thumb.php tiene esto:

Código PHP:
<? 
$fuente 
= @imagecreatefromjpeg($ruta); 
$imgAncho imagesx($fuente);  
$imgAlto imagesy($fuente);  
$imagen imagecreatetruecolor($ancho,$alto);  
imagecopyresampled($imagen,$fuente,0,0,0,0,$ancho,$alto,$imgAncho,$imgAlto);  
Header("Content-type: image/jpeg"); 
imagejpeg($imagen); 
imagedestroy($imagen); 
?>
Y claro como se puede comprobar solo me enseña las imagenes con extension jpg, pero si fuera la imagen formato gif que hago?
  #20 (permalink)  
Antiguo 29/04/2007, 08:24
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Ver imagenes con switch

YA LO CONSEGUI!!!!!!

Cambie el codigo del thumb.php y ya no es necesario utilizar el switch...

Este es el codigo, por si le interesa ha alguien.

Gracias a todos por vuestra ayuda y aguante conmigo..

Código PHP:
<?php
$anchura
=218
$hmax=180

$datos getimagesize($ruta); 
if(
$datos[2]==1){$img = @imagecreatefromgif($ruta);} 
if(
$datos[2]==2){$img = @imagecreatefromjpeg($ruta);} 
if(
$datos[2]==3){$img = @imagecreatefrompng($ruta);} 
$ratio = ($datos[0] / $anchura); 
$altura = ($datos[1] / $ratio); 
if(
$altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;} 
$thumb imagecreatetruecolor($anchura,$altura); 
imagecopyresampled($thumb$img0000$anchura$altura$datos[0], $datos[1]); 
if(
$datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);} 
if(
$datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);} 
if(
$datos[2]==3){header("Content-type: image/png");imagepng($thumb); } 
imagedestroy($thumb); 

?>
  #21 (permalink)  
Antiguo 29/04/2007, 08:40
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Ver imagenes con switch

Simples FAQ'S, para aprender y hacer la tarea.

Detectar tipos de archivos automaticamente.

http://www.forosdelweb.com/showpost....9&postcount=12
http://www.forosdelweb.com/showpost....&postcount=139

Para que el codigo de tratamiento a diferentes tipos de imagenes y generes Thumnails.

http://www.forosdelweb.com/showpost....1&postcount=73
http://www.forosdelweb.com/showpost....&postcount=152

Y leer un poco sobre el tema de Normalizacion en google.

Suerte.
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
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 06:17.