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
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
¡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
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