Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Como hacer una consulta con if elseif

12 de diciembre de 2015

Hola amigos.

Aver si me pueden ayudar.

Tengo un campo de URLs en una tabla de base la datos (por ejemplo www.url_1.com, www.url_2.com, www.url_3.com) y lo que quiero hacer, es "si el url contiene la palabra 'url_1' imprime imagen_1, y si contiene la palabra 'url_2' imprime imagen_2"

Lo hice de esta forma pero no es la correcta.

<?php
<img src="images/<? if($urls='url_1') {echo 'image_1.jpg';} elseif ($urls='url_2') {echo 'image_2.jpg';}elseif ($urls='url_3') {echo 'image_3.jpg';} else ($urls='url_2') {echo 'notimage.jpg';}
 ?>"/>
?>

Respuestas

#1

El problema del código que muestras es que estás utilizando "un solo símbolo de igual" cuando deberías utilizar dos. El código tendría que ser así:

<?php
<img src="images/<? if($urls=='url_1') {echo 'image_1.jpg';} elseif ($urls=='url_2') {echo 'image_2.jpg';}elseif ($urls=='url_3') {echo 'image_3.jpg';} else ($urls='url_2') {echo 'notimage.jpg';}
 ?>"/>
?>

Este error es bastante típico; pero a la vez es muy fácil recordar su solución: "si usas un solo igual, estás guardando algo en una variable; si usas dos iguales estás comparando cosas".

Por otra parte, el código que muestras podría cambiarse un poco para hacerlo más fácil de leer. Por ejemplo:

<?php
 
if ($urls == 'url_1') {
    $rutaImagen = 'image_1.jpg';
} elseif ($urls == 'url_2') {
    $rutaImagen = 'image_2.jpg';
} elseif ($urls == 'url_3') {
    $rutaImagen = 'image_3.jpg';
}
?>
 
<img src="images/<?php echo $rutaImagen ?>" />

Por último, cuando en un programa tienes muchos if ... else, también puedes usar el switch ... case:

<?php
 
switch ($urls) {
    case 'url_1':
        $rutaImagen = 'image_1.jpg';
        break;
    case 'url_2':
        $rutaImagen = 'image_2.jpg';
        break;
    case 'url_3':
    default:
        $rutaImagen = 'image_3.jpg';
        break;
}
 
?>
 
<img src="images/<?php echo $rutaImagen ?>" />

@javiereguiluz

13 diciembre 2015, 15:55
#2

¡Gracias por tu respuesta, Javier!

Pero no me estas resolviendo el problema. el código <?php if ($urls == 'url_1')...?> imprime el resultado solo si en el campo de urls haya url_1, y si inserto el url completo como por ejemplo http://www.url_1.com el resultado seria 0.

Lo que intento resolver es que haga un recorrido por en campo de urls para verificar el Dominio que esta registrado en base de datos y imprimir una imagen para dicho dominio.

Espero que me he explicado bien.

gracias por tu atención.

@KhalifaBoulbaye

19 diciembre 2015, 1:05
#3

Hola. Lo mas fácil es que uses un array asociativo y así evitas la selva de if y elseif que puedas tener que escribir si tienes que agregar mas opciones. Te quedaría algo como:

$img_arr = array('url_1' => 'image_1.jpg', 'url_2' => 'image_2.jpg');

Y luego haces

<img src="<php echo $img_arr[$urls]; ?>"

Lo único que tendrias que chequear es si la clave está creada en el array.

Saludos, Yamil

@YamilBracho

5 enero 2016, 3:19