Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Me estoy volviendo loco...

Estas en el tema de Me estoy volviendo loco... en el foro de Mysql en Foros del Web. tengo esta consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original $sSQL = "SELECT * FROM noticias WHERE (tipo='" . $_SESSION [ "s_tipo" ] . "' OR ...
  #1 (permalink)  
Antiguo 06/10/2010, 03:09
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 9 meses
Puntos: 14
Me estoy volviendo loco...

tengo esta consulta:

Código SQL:
Ver original
  1. $sSQL="SELECT * FROM noticias WHERE (tipo='".$_SESSION["s_tipo"]."' OR tipo=NULL) AND (codigo='".$_SESSION["codigo"]."' OR codigo='') AND (fechab >='".$actual."' AND '".$actual."'>=fechae) AND (login='".$_SESSION["s_login"]."' OR login='')";


Cuyo resultado es este:

Código PHP:
Ver original
  1. SELECT * FROM noticias WHERE (tipo='2' OR tipo=NULL) AND (codigo='999'  OR codigo='') AND (fechab >='2010-10-06' AND '2010-10-06'>=fechae)  AND (login='adrian' OR login='')

Tengo una noticia que cumple los requisitos...o almenos eso creo...y no la saca...

admin Soy una noticia enviada a todos Soy una noticia enviada a todos 2010-10-04 2010-10-10 2010-10-05 NULL(creo que esto es lo que da errores es tipo)
  #2 (permalink)  
Antiguo 06/10/2010, 04:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Me estoy volviendo loco...

NULL no es un valor, es un estado (no dato), por lo que no se pueden usar operadores lógicos con él, o hacer operaciones con el mismo.
Hay todo un capítulo del manual dedicado al tema del NULL.
Para saber si un valor es NULL se debe usar IS NULL o IS NOT NULL:
Código MySQL:
Ver original
  1. FROM noticias
  2.     (tipo='2' OR tipo IS NULL) AND
  3.     (codigo='999'  OR codigo='') AND
  4.     (fechab >='2010-10-06' AND '2010-10-06'>=fechae) AND
  5.     (login='adrian' OR login='')
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: loco
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 13:44.