Foros del Web » Programando para Internet » PHP »

mostrar campos vacíos y con un valor determinado

Estas en el tema de mostrar campos vacíos y con un valor determinado en el foro de PHP en Foros del Web. Hola quiero hacer lo que dice el título ,tengo una tabla con un campo City y quiero crear una sentencia sql que me muestr todas ...
  #1 (permalink)  
Antiguo 20/04/2009, 10:18
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
mostrar campos vacíos y con un valor determinado

Hola quiero hacer lo que dice el título ,tengo una tabla con un campo City y quiero crear una sentencia sql que me muestr todas las que coincidan con "maracibo" y también las que estén vacías o sean null, es decir City="", lo he intentado hacer así pero no me funciona:
$Sql.=" WHERE City='' AND City='".utf8_decode($_SESSION['ciudad'])."' AND CatId='".$_GET['cat']."'";

Por supuesto que este es un trozo solamente de la sentencia Sql ya que es el único que falla , el resto esta OK.

Gracias de antemano.
  #2 (permalink)  
Antiguo 20/04/2009, 11:11
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años, 7 meses
Puntos: 7
Respuesta: mostrar campos vacíos y con un valor determinado

prueba con Ciudad Is Null para el campo vacio
__________________
Me junto con los que Saben, Queriendo Saber.
  #3 (permalink)  
Antiguo 20/04/2009, 11:12
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
Respuesta: mostrar campos vacíos y con un valor determinado

Cita:
Iniciado por ACX_POISON Ver Mensaje
prueba con Ciudad Is Null para el campo vacio
Pero la expresión
$Sql.=" WHERE City='' AND City='".utf8_decode($_SESSION['ciudad'])."' AND CatId='".$_GET['cat']."'";

¿está bien escrita?
¿o tendría que ser?
$Sql.=" WHERE City='NULL' AND City='".utf8_decode($_SESSION['ciudad'])."' AND CatId='".$_GET['cat']."'";

gRACIAS DE ANTEMANO
  #4 (permalink)  
Antiguo 20/04/2009, 19:25
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años, 7 meses
Puntos: 19
Respuesta: mostrar campos vacíos y con un valor determinado

entonces si quieres que te busque ambas en el mismo campo y en la misma tabla entonces seria con un or no con and
  #5 (permalink)  
Antiguo 20/04/2009, 20:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: mostrar campos vacíos y con un valor determinado

o usar IN()

Código PHP:
SELECT FROM tabla WHERE campo IN(NULL'foo'
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 20/04/2009, 20:32
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: mostrar campos vacíos y con un valor determinado

By_George tiene razon. El campo City no puede estar vacio y a la vez tener algo. Usa OR.

Tambien, no debe ser:
City = 'NULL'
Va sin comillas:
City = null

De lo contrario, es una simple cadena.
  #7 (permalink)  
Antiguo 20/04/2009, 20:47
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: mostrar campos vacíos y con un valor determinado

NULL es un bicho raro al que hay que tenerle mucho respeto.

Se esperaría que City = NULL devolviera todos los campos City cuyo valor sea NULL, cuando no es así. Hay que tener en cuenta que * = NULL siempre da como resultado NULL, no FALSE o TRUE.

Tampoco es válido City IN (NULL, ''), devolverá todos los campos vacíos, pero no los campos NULL.

Sí es válido:
City <=> NULL
City IS NULL

Más información: http://dev.mysql.com/doc/refman/5.0/...with-null.html
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Última edición por David; 20/04/2009 a las 20:59
  #8 (permalink)  
Antiguo 21/04/2009, 03:25
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
Respuesta: mostrar campos vacíos y con un valor determinado

Hola gracias por la ayuda , el tema de un campo NULL y otro vacío '' (dos comillas) ,es algo que me confunde mucho ; el tema es que en mi tabla de la Bd he puesto al campo City como por defecto NULL .

varchar(40) , Predeterminado Null

El problema es que si inserto un dato vacío que lo hago de esta forma.
$ciudad=NULL;
y luego en la consulta pongo la variable ciudad en el campo donde voy a insertar el dato. El problema es que no se inserta como NULL , ya que luego veo la Table y en el campo ciudad simplemente no aparece nada , ni null ni nada ; la única forma que he conseguido ponerlo como null es hacerlo manualmente desde PhpMyAdmin . ¿Como puedo hacer para que se inserte como Null predeterminadamente? (lo he marcado en PhpMyAdmin predeterminado Null pero no hace caso.

Otra cosilla , tengo esta sentencia Sql y no me funciona:
Código:
$sql.=" WHERE  ".$lang."_categories.SecId='".$_GET['section']."' AND ".$lang."_categories.CatId=".$lang."_adds.CatId  
			AND (".$lang."_adds.City='' OR  ".$lang."_adds.City='".utf8_decode($_SESSION['ciudad'])."'   ) ";
Me devuelve todos los campos vacíos de city , pero no me devuelve los que tienen el valor que le envío ¿porque ? , ¿hago mal el AND Y/O EL OR?.

Gracias de antemano y un saludo
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 21:15.