Foros del Web » Programando para Internet » PHP »

ayuda con if y saber cual se ejecuta primero

Estas en el tema de ayuda con if y saber cual se ejecuta primero en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente problema, yo tengo 4 if uno debajo de otro, lo que necesito hacer, es saber cual se ejecuta primero ...
  #1 (permalink)  
Antiguo 18/02/2010, 17:04
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
ayuda con if y saber cual se ejecuta primero

Hola a todos, tengo el siguiente problema, yo tengo 4 if uno debajo de otro, lo que necesito hacer, es saber cual se ejecuta primero para poder asignar una variable a un select.
Pongo el ej para que se vea mejor.

if (!empty($aa))
$a =a='$tomo'

if (!empty($bb))
$b = and b='$tomo'

if (!empty($cc))
$c = and c='$tomo'

if (!empty($dd))
$d = and d='$tomo'

tanto $aa,$bb,$cc y $dd son variables tomadas de get.

el tema es que yo tengo un select de este tipo

$consulta = mysql_fetch_assoc("SELECT * from caballos where $a $b $c $d")

si lo ponemos sin las variables queda SELECT * from caballos where a='$tomo' and b='$tomo' and c='$tomo' and d='$tomo'")

ahora cual es el problema de esto, que el usuario puedo elegir cual de las cuatro condiciones usar. osea el problema viene cuando uno elege por ej solo la 2da osea b y como la variable $b tiene un AND delante da error. ahora si elegen la primera + la segunda por ej, anda bien porque la variable $a no tiene AND.

Mi pregunta, como hago para saber cual seria el primer if que se ejecute para decirle que saque el AND de la variable?.

Espero que se haya entendido lo que necesito.

Gracias.
  #2 (permalink)  
Antiguo 18/02/2010, 17:12
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: ayuda con if y saber cual se ejecuta primero

realmente esta un poco entreverado en si no se como lo haces.. pero realmente lo que veo mal es la consulta a la db.. porque si solo se puede elegir en algun caso una... siempre te dara error la consulta a la db
  #3 (permalink)  
Antiguo 18/02/2010, 17:16
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: ayuda con if y saber cual se ejecuta primero

Puedes ir verificando si $a,$b,$c y $d estan vacias o no, y de acuerdo a eso sacar el and de la primera que tenga valor...

O puedes modificar la consulta para ponerle una condicion que siemrpe se cumpla, y luego agregarle las que sea que haya seleccionado sin preocuparte cuantas o cuales fueron
  #4 (permalink)  
Antiguo 18/02/2010, 17:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: ayuda con if y saber cual se ejecuta primero

en todo caso deberias plantear diferentes consultas suponiendo de lo que el usuario pueda elegir ... osea deberias hacer una estructura de if preguntando cuales son las variables q tiene los datos o cuales vienen d que no esten vacias asi como lo pones en los if.. y de variabñes a variabes realizando consultas a la db...
  #5 (permalink)  
Antiguo 18/02/2010, 17:19
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: ayuda con if y saber cual se ejecuta primero

es que no hay condicion fija, son todas variables.
Puedes ir verificando si $a,$b,$c y $d estan vacias o no, y de acuerdo a eso sacar el and de la primera que tenga valor...

eso es lo que quiero hacer pero como hago para comprobar cual es la primera que no esta vacia para sacar el AND?

saludos
  #6 (permalink)  
Antiguo 18/02/2010, 17:23
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: ayuda con if y saber cual se ejecuta primero

Cita:
Iniciado por diegomel Ver Mensaje
es que no hay condicion fija, son todas variables.
Puedes ir verificando si $a,$b,$c y $d estan vacias o no, y de acuerdo a eso sacar el and de la primera que tenga valor...
Por eso, agrega en la consulta una condicion extra que siempre se cumpla (como 1=1) y luego pones las demas que son variables -_-
  #7 (permalink)  
Antiguo 18/02/2010, 17:26
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: ayuda con if y saber cual se ejecuta primero

Si solo se puede elegir una opción esto podría servir?

Código PHP:
if (!empty($aa))
$sql"SELECT * from caballos where a='$tomo'";

if (!empty(
$bb))
$sql"SELECT * from caballos where b='$tomo'";

if (!empty(
$cc))
$sql"SELECT * from caballos where c='$tomo'";

if (!empty(
$dd))
$sql"SELECT * from caballos where d='$tomo'";


$consulta mysql_fetch_assoc($sql); 
__________________
Tu álbum de cromos online!!
  #8 (permalink)  
Antiguo 18/02/2010, 17:30
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: ayuda con if y saber cual se ejecuta primero

no ese es el problema, se pueden elegir 1 , 2 ,3 o todas y no hay fija.

Es bastante resbuscado esto , pero el tema es que se genera una estadistica siempre igual pero lo que cambia son las condiciones osea lo que esta despues del where, que elige el usuario cual usar.

mi idea viene sacar el AND a la primera que se ejecute de todas las que hay osea la primera que no este vacia en este caso, PERO COMO HAGO PARA SABER CUAL ES LA PRIMERA QUE NO ESTA VACIA?.

si a alguien se le ocurre algo le agreaderia muchisimo.

gracias.
  #9 (permalink)  
Antiguo 18/02/2010, 17:33
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: ayuda con if y saber cual se ejecuta primero

Cita:
Iniciado por diegomel Ver Mensaje
no ese es el problema, se pueden elegir 1 , 2 ,3 o todas y no hay fija.
entonces AGREGASELA TU directamente al construir la consulta

que tan dificl de entender es? -_-
  #10 (permalink)  
Antiguo 18/02/2010, 17:37
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: ayuda con if y saber cual se ejecuta primero

si te entiendo eso , pero la verdad no solo no se me habia ocurrido , sino que si pongo 1=1 anda?, o que tendria que buscar que se cumpla siempre?

en verdad no logro ver bien como seria eso de poner una condicion que se cumpla si o si.

muchas gracias por la ayuda.
  #11 (permalink)  
Antiguo 18/02/2010, 17:41
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: ayuda con if y saber cual se ejecuta primero

Cita:
Iniciado por diegomel Ver Mensaje
si te entiendo eso , pero la verdad no solo no se me habia ocurrido ,
Es lo que te he estado diciendo en cada uno de mis post en este tema -.-

Cita:
sino que si pongo 1=1 anda?, o que tendria que buscar que se cumpla siempre?

en verdad no logro ver bien como seria eso de poner una condicion que se cumpla si o si.

muchas gracias por la ayuda.
1=1 <--eso siempre sera verdad? o habra ocasiones en que no lo sea? -.-

Última edición por darkasecas; 18/02/2010 a las 17:48
  #12 (permalink)  
Antiguo 18/02/2010, 17:45
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: ayuda con if y saber cual se ejecuta primero

si te entiendo lo del 1=1 ahora mi duda , supongamos que la consulta es esta

"Select * from caballos where 1=1 and $b $c $d";

tendria que poner asi entonceS? mi duda es si pongo 1=1 a secas como esta ahi anda?= la verdad nunca pense en eso por eso te pregunto.

Disculpa las molestias y muchisimas gracias.
  #13 (permalink)  
Antiguo 18/02/2010, 17:49
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: ayuda con if y saber cual se ejecuta primero

pruebalo, imprime la consulta a ver como sale y me dices ;)
  #14 (permalink)  
Antiguo 18/02/2010, 17:50
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: ayuda con if y saber cual se ejecuta primero

recuerda poner el and en la primera variable como están las demás

Código PHP:
if (!empty($aa))
$a = and a='$tomo'

if (!empty($bb))
$b = and b='$tomo'

if (!empty($cc))
$c = and c='$tomo'

if (!empty($dd))
$d = and d='$tomo'


$consulta mysql_fetch_assoc("SELECT * from caballos where 1=1 $a $b $c $d"
__________________
Tu álbum de cromos online!!
  #15 (permalink)  
Antiguo 18/02/2010, 17:53
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: ayuda con if y saber cual se ejecuta primero

Listo, mañana lo pruebo porque no tengo el mysql aca para hacerlo, pero si es asi como dicen me salvan.

muchisimas gracias a todos.

Etiquetas: primero
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 10:17.