Foros del Web » Programando para Internet » PHP »

Usar if con mysql

Estas en el tema de Usar if con mysql en el foro de PHP en Foros del Web. Hola disuclpen me tope conn un grave bug el cual la gente puede abusar, en mi juego la gente manda que se cree un bebe ...
  #1 (permalink)  
Antiguo 18/12/2007, 01:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Usar if con mysql

Hola disuclpen me tope conn un grave bug el cual la gente puede abusar, en mi juego la gente manda que se cree un bebe y este tarda 30 min si los 30 min se pasa de los 60 de la hora de le resta 60 y s ele suma una hora pero si se hase eso, terminara rapido ya que es por tiempo y detectara que el minuto es mayor... Lo que yo quiero es que si la hora es mayor pare y no me lea el minto hay alguna manera? algo asi:

$sql_criar = "SELECT * FROM poblacion WHERE user='".$user."' and accion=2 and(ano<'".$ano."' or mes<'".$mes."' or dia<'".$dia."' or if(horas<'".$hora."') { or horas<'".$hora."' or minutos<'".$min."'}else{horas<'".$hora."')";
  #2 (permalink)  
Antiguo 18/12/2007, 02:17
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Usar if con mysql

Hola Edig,

Tal y como has planteado tu consulta, creo que no te funcionará... Ya que estas empleando la misma estructura de lenguaje PHP en MySQL y son dos cosas distintas....

Cita:
if(horas<'".$hora."') { or horas<'".$hora."' or minutos<'".$min."'}else{horas<'".$hora."')";
Esta parte es propia de PHP y no de MySQL. En MySQL se pueden realizar condiciones empleando IF pero con la siguiente estructuración:

Cita:
Si la expr1 es TRUE (expr1 <> 0 and expr1 <> NULL) entonce IF() devuelve expr", en caso contrario, devolverá expr3. IF() devuelve un valor numérico o una cadena, dependiendo del contexto en el que se use.

mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'yes','no');
-> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
-> 'no'
O sea, que has de efectuar una comparación de dos valores y devolver dentro de la sentencia IF un valor en caso de que la comparacion sea IGUAL a VERDADERO o FALSO. En caso de que desees aplicar más de un posible "caso" o "supuesto" en tus comparaciones, IF puede que no sea la mejor opcion, seria más bien CASE.

http://dev.mysql.com/doc/refman/5.0/...#operator_case

Echale un ojo a las referencias existentes en la página de MySQL y nos comentas.

Saludos
  #3 (permalink)  
Antiguo 18/12/2007, 12:13
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Re: Usar if con mysql

asi es que le puedo poner de esta manera\

SELECT IF(horas<'".$hora."',SELECT * FROM poblacion WHERE user='".$user."' and accion=2 and(ano<'".$ano."' or mes<'".$mes."' or dia<'".$dia."' or horas<'".$hora."' or minutos<'".$min." ,SELECT * FROM poblacion WHERE user='".$user."' and accion=2 and(ano<'".$ano."' or mes<'".$mes."' or dia<'".$dia."' or horas<'".$hora."');
  #4 (permalink)  
Antiguo 19/12/2007, 13:07
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 4 meses
Puntos: 12
Re: Usar if con mysql

No sirvio eso alguna idea?
  #5 (permalink)  
Antiguo 19/12/2007, 13:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Usar if con mysql

Como te comento popobcn, no puedes hacer eso a nivel SQL.

Necesitas primero comparar en PHP y en dado caso si se cumple hacer el Query pertinente, o si no hacer un Stored Procedure en tu base de datos que haga eso por ti.

Saludos.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:08.