Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Respuesta consulta Mysqli

Estas en el tema de Respuesta consulta Mysqli en el foro de PHP en Foros del Web. Hola tengo un consulta que me devuelve una valor y estoy tratando de hacer controlar cuando venga vacio de cuando no bine lo trato asi ...
  #1 (permalink)  
Antiguo 19/06/2013, 07:31
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Respuesta consulta Mysqli

Hola tengo un consulta que me devuelve una valor y estoy tratando de hacer controlar cuando venga vacio de cuando no bine lo trato asi

Código PHP:
 <?php
         
if($publicaciones['imagen'] == NULL)
     {
?>
        <img src="http://www.forosdelweb.com/f18/imagenes/usuario-sin-foto.gif" width="60" height="60" alt="usuario sin imagen"> 
      <?php
       
}
     else{
         
?>
     <img src="<?php echo $publicacion['imagen']; ?>" width="60" height="60" alt="Imagen de usuario <?php echo $publicacion['login_usuario']; ?>">
     <?php
     
}
     
?>
Si es igual a NULL muestra una imagen por defecto, si no, pues el resultado. Por alguna razón la lógica no es esa, o muestra solo la imagen por defecto o la imagen del usuario, y curioso, si el usuario no tiene imagen como ya he dicho debería sacar el valor del if la imagen por defecto, pero no es asi no carga ninguna imagen.
  #2 (permalink)  
Antiguo 19/06/2013, 07:50
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 8 meses
Puntos: 17
Respuesta: Respuesta consulta Mysqli

$publicacion es un Array con datos sacado de una consulta a la base de datos, e imagen es uno de los campos, no?

Si el usuario no tiene imagen, que guardas en el campo imagen en la bd, NULL?, pero quizá lo estés guardando como texto?

Un saludo.
  #3 (permalink)  
Antiguo 19/06/2013, 08:02
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Respuesta consulta Mysqli

la columna imagen en la tabla por defecto su valor no es NULL es vacío, pero también he comprobado ha
Código PHP:
if($publicaciones == ""
y nada ni caso.

Pero probaré a que el valor por defecto sea NULL en la tabla, ahora digo algo.
  #4 (permalink)  
Antiguo 19/06/2013, 08:12
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 8 meses
Puntos: 17
Respuesta: Respuesta consulta Mysqli

Quizá te valga esta función de PHP: empty(); que te devolverá true si es un valor vacío (si es NULL, cadena vacia, vale 0, y algunas comprobaciones mas).

Un saludo.
  #5 (permalink)  
Antiguo 19/06/2013, 08:20
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Respuesta consulta Mysqli

Cita:
Iniciado por Lobito14 Ver Mensaje
Quizá te valga esta función de PHP: empty(); que te devolverá true si es un valor vacío (si es NULL, cadena vacia, vale 0, y algunas comprobaciones mas).

Un saludo.
Nada no hay forma, ni 0 ni null ni vacio ni la función empty();, "todo funciona", pero no de forma correcta como ya he dicho no es lógico, no debería irse al else.
  #6 (permalink)  
Antiguo 19/06/2013, 08:26
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 8 meses
Puntos: 17
Respuesta: Respuesta consulta Mysqli

Has probado a mostrar con un echo o con var_dump() el valor de $publicaciones['imagen'], no vaya a estar devolviendo algo "raro" que no esperas?.

Saludos
  #7 (permalink)  
Antiguo 19/06/2013, 08:39
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Respuesta consulta Mysqli

Antes de nada gracias por tu paciencia y ayuda.

Con echo no me muestra nada, con var_dump(); si, me dice en todo NULL, no entiendo por que, es el mismo $publicaciones['imagen'] el que utilizo para mostrar la imagen, y las muestra cuando cambio de ==, != para comprobar con if().


Edito-----
no me hagas caso, si muestra, el valor, he puesto $publicaciones['imagen'] en vez de $publicacion['imagen'], pero sigo con el error.
  #8 (permalink)  
Antiguo 19/06/2013, 08:42
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 8 meses
Puntos: 461
Respuesta: Respuesta consulta Mysqli

muestra el resultado del var_dump como tal, para ver si lo que estoy pensando es lo que esta pasando
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 19/06/2013, 08:52
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Respuesta consulta Mysqli

Cita:
Iniciado por carlos_belisario Ver Mensaje
muestra el resultado del var_dump como tal, para ver si lo que estoy pensando es lo que esta pasando
string(79) "usuarios/patopato/imagenes/1370364850-198652_10151241654673112_2117302637_n.jpg"


Eso es lo que me imprime var_dump para uno de los usuarios. (lógicamente de los que tienen imagen).
  #10 (permalink)  
Antiguo 19/06/2013, 09:34
 
Fecha de Ingreso: julio-2009
Mensajes: 117
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Respuesta consulta Mysqli

Arreglado. y me da verguenza, admitirlo, pero de igual manera que que me he equivocado, al intentar mostrar el valor con echo y var_dump();, me he equivocado en el if()
eh escrito $publicaciones['imagen'] cuando es $publicacion['imagen'] por alguna razón en el if no veía el error lo siento, ya esta todo arreglado.
  #11 (permalink)  
Antiguo 19/06/2013, 09:59
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 8 meses
Puntos: 17
Respuesta: Respuesta consulta Mysqli

Al final era un simple error del nombre de la variable... son cosas que pasan cuando llevas mucho tiempo escribiendo código, la cabeza se te queda tonta...

Bueno si lo tienes arreglado me alegro.

Un saludo.

Etiquetas: mysqli, respuesta
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 07:52.