Foros del Web » Programando para Internet » PHP »

Select * basico

Estas en el tema de Select * basico en el foro de PHP en Foros del Web. Hola, Hace mucho que no programo y necesito vuestra ayuda recordando un poco jeje como hago una consulta de esta manera pero que funcione: @import ...
  #1 (permalink)  
Antiguo 12/03/2015, 11:21
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 19 años, 7 meses
Puntos: 6
Select * basico

Hola,
Hace mucho que no programo y necesito vuestra ayuda recordando un poco jeje
como hago una consulta de esta manera pero que funcione:

Código PHP:
Ver original
  1. SELECT * from mibd WHERE location ='.$locUno.' AND location ='.$locDos.' AND location ='.$locTres.' ORDER BY id;

Gracias de antemano!
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #2 (permalink)  
Antiguo 12/03/2015, 11:24
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: Select * basico

Quieres que la localización se una de tres posibles?
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #3 (permalink)  
Antiguo 12/03/2015, 11:25
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 19 años, 7 meses
Puntos: 6
Respuesta: Select * basico

Cita:
Iniciado por miktrv Ver Mensaje
Quieres que la localización se una de tres posibles?
Si porfavor! jeje
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #4 (permalink)  
Antiguo 12/03/2015, 11:25
 
Fecha de Ingreso: marzo-2015
Mensajes: 2
Antigüedad: 9 años
Puntos: 0
Respuesta: Select * basico

puedes hacerla de esta manera


Código PHP:
Ver original
  1. <?php
  2.  
  3. $mysqli = new mysqli("localhost", "usuario", "pass", "bd");
  4.  
  5. if($mysqli->connect_errno)
  6. {
  7.     die('Connect Error: ' . $mysqli->connect_errno);
  8. }
  9. else
  10. {
  11. $query="SELECT * from mibd WHERE location ='$locUno' AND location ='$locDos' AND location ='$locTres' ORDER BY id";
  12. $res= $mysqli->query($query);
  13.  
  14. ?>


Esto haría que buscara una coincidencia con los tres valores


Código PHP:
Ver original
  1. <?php
  2.  
  3. $mysqli = new mysqli("localhost", "usuario", "pass", "bd");
  4.  
  5. if($mysqli->connect_errno)
  6. {
  7.     die('Connect Error: ' . $mysqli->connect_errno);
  8. }
  9. else
  10. {
  11. $query="SELECT * from mibd WHERE location ='$locUno' or location ='$locDos' OR location ='$locTres' ORDER BY id";
  12. $res= $mysqli->query($query);
  13.  
  14. ?>

y esta que alguna de las 3 coincidiera
  #5 (permalink)  
Antiguo 12/03/2015, 11:31
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 19 años, 7 meses
Puntos: 6
Respuesta: Select * basico

El caso es que necesito que salga las 3 consultas y no con un OR
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #6 (permalink)  
Antiguo 12/03/2015, 11:37
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 19 años, 7 meses
Puntos: 6
Respuesta: Select * basico

Código PHP:
Ver original
  1. $sql = 'SELECT ' . $title . ', ' . $description . ', ' . PROPERTIES_TABLE . '.* FROM ' . PROPERTIES_TABLE  . ' WHERE location2 = '. $localiz .' AND location2 = '. $localizdos .' AND location2 = '. $localiztres .'AND location2 = '. $localizcuatro .' ORDER BY id DESC LIMIT ' . $conf['recent_limit'];
  2.  
  3. $r = $db->query ( $sql );
y nada ...:(
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #7 (permalink)  
Antiguo 12/03/2015, 11:41
Avatar de 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

Este es un problema de BBD, no de PHP... Deberías haber preguntado en el foro correspondeinte.

Vamos a ver.
Esto no tiene sentido:
Código SQL:
Ver original
  1. SELECT *
  2. FROM mibd
  3. WHERE
  4.    location ='$locUno'
  5.    AND location ='$locDos'
  6.    AND location ='$locTres'
  7. ORDER BY id
Poprque un mismo campo no peude tener tres valores diferentes al mismo tiempo, por una restricción del modelo relacional (unicidad de dominios).

Esto otro sí tiene sentido:
Código SQL:
Ver original
  1. SELECT *
  2. FROM mibd
  3. WHERE location ='$locUno'
  4.     OR location ='$locDos'
  5.     OR location ='$locTres'
  6. ORDER BY id
Pero devovlerá al menos un registro de cualquiera de los tres.
¿Por qué dices que no te sirve? ¿Qué otra condición debe cumplir el resultado?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 12/03/2015, 11:50
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 19 años, 7 meses
Puntos: 6
Respuesta: Select * basico

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Este es un problema de BBD, no de PHP... Deberías haber preguntado en el foro correspondeinte.

Vamos a ver.
Esto no tiene sentido:
Código SQL:
Ver original
  1. SELECT *
  2. FROM mibd
  3. WHERE
  4.    location ='$locUno'
  5.    AND location ='$locDos'
  6.    AND location ='$locTres'
  7. ORDER BY id
Poprque un mismo campo no peude tener tres valores diferentes al mismo tiempo, por una restricción del modelo relacional (unicidad de dominios).

Esto otro sí tiene sentido:
Código SQL:
Ver original
  1. SELECT *
  2. FROM mibd
  3. WHERE location ='$locUno'
  4.     OR location ='$locDos'
  5.     OR location ='$locTres'
  6. ORDER BY id
Pero devovlerá al menos un registro de cualquiera de los tres.
¿Por qué dices que no te sirve? ¿Qué otra condición debe cumplir el resultado?
Tienes toda la razon del mudo! no tiene sentido!

pero aun haciendo un OR no me muestra ningun registro...

Código PHP:
Ver original
  1. $sql = 'SELECT ' . $title . ', ' . $description . ', ' . PROPERTIES_TABLE . '.* FROM ' . PROPERTIES_TABLE  . ' WHERE location2 = '. $localiz .' OR location2 = '. $localizdos .' OR location2 = '. $localiztres .'OR location2 = '. $localizcuatro .' ORDER BY id DESC LIMIT ' . $conf['recent_limit'];
  2.  
  3. $r = $db->query ( $sql );
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #9 (permalink)  
Antiguo 12/03/2015, 12:27
Avatar de 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 no te muestra regisros en esas condiciones, es porque o la variable no contiene lo que supones, o los datos no existen en la tabla.
¿Verificaste los datos que llegan para crear la consulta?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 12/03/2015 a las 12:44
  #10 (permalink)  
Antiguo 12/03/2015, 13:05
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 19 años, 7 meses
Puntos: 6
Respuesta: Select * basico

Gracias! el problema es que si uno de los registros esta vacio no me muestra ninguno.
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!
  #11 (permalink)  
Antiguo 12/03/2015, 13:21
Avatar de 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)
  #12 (permalink)  
Antiguo 12/03/2015, 13:43
Avatar de ken-obi  
Fecha de Ingreso: julio-2004
Ubicación: Alicante
Mensajes: 314
Antigüedad: 19 años, 7 meses
Puntos: 6
Respuesta: Select * basico

Bravo! muchisimas gracias por molestarte en ayudarme! un abrazo y gracias de nuevo.
__________________
Un mundo sin fin... !!! viva los moros y cristianos de ELDA !!!

Etiquetas: basico, select
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 02:43.