Foros del Web » Programando para Internet » PHP »

Condiciones multiples en un SELECT WHERE?

Estas en el tema de Condiciones multiples en un SELECT WHERE? en el foro de PHP en Foros del Web. Hola! existe alguna forma de hacer varias condiciones en un SELECT pero con una misma celda? por ejemplo, quiero validar un usuario, con tal nombre, ...
  #1 (permalink)  
Antiguo 07/09/2004, 12:59
Avatar de antihem  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 227
Antigüedad: 19 años, 11 meses
Puntos: 0
Información Condiciones multiples en un SELECT WHERE?

Hola!
existe alguna forma de hacer varias condiciones en un SELECT pero con una misma celda? por ejemplo, quiero validar un usuario, con tal nombre, con tal password y que tenga privilegios de 1 o de 2.

Código PHP:
$query " SELECT * FROM users WHERE alias=\"$usuario\" AND pass=\"$pass\" AND privilegios=(1 ó 2) "
como va la sintaxis??
muchas gracias de antemano!!!
__________________
- -
:neurotico eso fue un php warning ?
creo q si... :golpeado:
  #2 (permalink)  
Antiguo 07/09/2004, 13:42
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago
Mensajes: 127
Antigüedad: 20 años, 3 meses
Puntos: 0
$query = " SELECT * FROM users WHERE alias='$usuario' AND pass='$pass' AND privilegios=IN(1,2)";

o

$query = " SELECT * FROM users WHERE alias='".$usuario."' AND pass='".$pass."' AND privilegios=IN(1,2)";

Revisa la cadena porque esta mal la que habias enviado.

Saludos

Última edición por HiperJP; 07/09/2004 a las 13:44
  #3 (permalink)  
Antiguo 07/09/2004, 14:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sobraría el = para usar IN de SQL (de Mysql) ..

Cita:
$query = " SELECT * FROM users WHERE alias='".$usuario."' AND pass='".$pass."' AND privilegios IN (1,2)";
Un saludo,
  #4 (permalink)  
Antiguo 07/09/2004, 14:22
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago
Mensajes: 127
Antigüedad: 20 años, 3 meses
Puntos: 0
Cita:
Iniciado por Cluster
Sobraría el = para usar IN de SQL (de Mysql) ..



Un saludo,
Cierto, se me pasó eso... gracias por la aclaración Cluster.


Saludos
  #5 (permalink)  
Antiguo 08/09/2004, 07:34
Avatar de antihem  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 227
Antigüedad: 19 años, 11 meses
Puntos: 0
Pregunta privilegios IN(1,2), perfecto!

gracias por la respuesta del where! pero...
Cita:
Iniciado por HiperJP
Revisa la cadena porque esta mal la que habias enviado
porque mis cadenas estan mal?...

si te refieres a la cadena que puse ahi, fue para q vieran que no sabia jeje.

tengo una duda, porque usan valor='".$valor."'? porque las comillas? y los puntitos.. que ventajas tiene o es mera sintaxys.

gracias nuevamente!
__________________
- -
:neurotico eso fue un php warning ?
creo q si... :golpeado:

Última edición por antihem; 08/09/2004 a las 07:38 Razón: ...
  #6 (permalink)  
Antiguo 08/09/2004, 10:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Los "puntitos" son concatenación .. y el efecto principal de su uso lo tienes aquí mismo .. fijate que se colorea diferente la "variable" de PHP que el resto (como pasaría si no usases "puntitos"). Ese efecto lo verás en cualquier editor de código que coloree sintax.

Las "comillas" en el valor de una consulta SQL es parte de la sintax de SQL. Se usa para indicar ahí un "valor" .. Es necesario usarlo para evitar problemas tipo:

Ejemplo:
SELECT * FROM tabla WHERE campo=esto es un valor
Si haces eso .. para "Mysql": es un valor será una instrucción SQL que intentará interpretar (valor con espacios ..)

Lo correcto (para evitar confunsión a Mysql) sería:
SELECT * FROM tabla WHERE campo='esto es un valor'

Para los nombres de los campos/tablas deberiamos (me incluyo por qué no los suelo usar) los "backstrinks" (o como se escriba):
SELECT * FROM `tabla` WHERE `campo`=esto es un valor

Así evitamos problemas con nombres de tablas con nombres "reservados" para Mysql o con caracteres especiales ...

Un saludo,
  #7 (permalink)  
Antiguo 08/09/2004, 13:33
Avatar de antihem  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 227
Antigüedad: 19 años, 11 meses
Puntos: 0
entendido y anotado!
entonces, usar ' ' es lo mismo a usar " "
gracias cluster!
__________________
- -
:neurotico eso fue un php warning ?
creo q si... :golpeado:
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 06:08.