Ver Mensaje Individual
  #11 (permalink)  
Antiguo 12/03/2015, 13:21
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Select * basico

Si un registro está vacío, el registro no existe... AL menos mirandolo del ldado de BBDD.
Por otro lado lo que dices no tiene sentido.
Cuando usas OR, devuelve aquellos registros donde al menos UNO de ellos cumple con la condición. Lo que no te devolverá es aquel registro donde ese campo esté vacío. Eso es obvio.
Pero para que no te devuelva ninguno, TODOS los registros deben estar vacios, o todas las tres variables deben haber llegaod vacías y los registros tener datos, o bien ningún registro cumple las condiciones de las variables.
Nota Bene: Recuerda que un registro donde el campo sea NULL, no será devuelto ni siquiera si la variable está vacía, porque para la base de datos, NULL y caracter vacío son cosas diferentes.
¿Se entiende?

Como verás hay cosas que exceden la visión del problema desde pHP. Son específicas de BBDD.

Para que te devuelva si cumple con una de las condiciones, o el campo esté vacío, o bien sea NULL, la sintaxis es diferente:

Código SQL:
Ver original
  1. SELECT *
  2. FROM mibd
  3. WHERE location ='$locUno'
  4.     OR location ='$locDos'
  5.     OR location ='$locTres'
  6.     OR location =''
  7.     OR location IS NULL
  8. ORDER BY id
O simplificando la sintaxis:
Código SQL:
Ver original
  1. SELECT *
  2. FROM mibd
  3. WHERE location IN('$locUno' , '$locDos', '$locTres', '')
  4.     OR location IS NULL
  5. ORDER BY id
ESo.. asumiendo que "location" es un campo de caracteres (CHAR o VARCHAR), porque si es numérico la cosa cambia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)