Foros del Web » Programando para Internet » PHP »

Update no cumple la 5ta condición!

Estas en el tema de Update no cumple la 5ta condición! en el foro de PHP en Foros del Web. Hola tengo una duda, o mas bien dicho un problema. tengo este tipo de update: Código PHP: mysql_query ( "UPDATE tabela SET TotalUser='1' WHERE TotalPuntos >= 0 and TotalPuntos < 99 and TotalUser != 1 and NoRank = 0 and Up = 0" );  el problema es que ...
  #1 (permalink)  
Antiguo 20/06/2011, 12:41
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Update no cumple la 5ta condición!

Hola tengo una duda, o mas bien dicho un problema.

tengo este tipo de update:
Código PHP:
mysql_query("UPDATE tabela SET TotalUser='1' WHERE TotalPuntos >= 0 and TotalPuntos < 99 and TotalUser != 1 and NoRank = 0 and Up = 0"); 
el problema es que no me cumple la ultima condicion "and Up = 0", actualiza la tabla asi los usuarios tengan el campo Up con el valor 1.
solo se cumple hasta "NoRank = 0" si los usuarios tienen el campo NoRank con el valor 1 entonces no actualiza y pasa al segundo registro.

acaso son muchos "and" o condidiciones que le estoy metiendo a mi consulta ?
Cual seria la razon , por favor cualquier ayuda vale!!

muchas gracias.
  #2 (permalink)  
Antiguo 20/06/2011, 14:04
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Update no cumple la 5ta condición!

Si el campo Up no es de tipo numérico (int, tinyint) podría ser la cusa del fallo.
  #3 (permalink)  
Antiguo 20/06/2011, 14:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Update no cumple la 5ta condición!

Si, son muchas condiciones en tu consulta.

Y eso no es malo, sin embargo colocar las condiciones así sin mas puede resultar confuso y produce consultas ambiguas.

Para ello existen los paréntesis, pues sirven para agrupar las comparaciones lógicas según su relevancia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 20/06/2011, 14:22
 
Fecha de Ingreso: junio-2011
Ubicación: Lima Peru
Mensajes: 13
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Update no cumple la 5ta condición!

UPDATE tabela
SET TotalUser='1'
WHERE TotalPuntos >= 0 and
TotalPuntos < 99 and
TotalUser != 1 and
NoRank = 0 and


trata de mantener siempre algo de orden en tu codigo ... no encuentro nada anormal seria cosa de ver la estructura de tu tabl y probar

Up = 0
  #5 (permalink)  
Antiguo 20/06/2011, 14:48
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Update no cumple la 5ta condición!

bueno pues lo malo que veo ahi es un error comun al usar signos de igual (=)

no es lo mismo

signos para comparar valores son

< (menor a)
>(mayor a)
==(igual a) si colocas una sola es signo de asignacion

$a=1 //$a tiene asignado el valor de uno 1

$a==1 //$a se compara si tiene valor 1 (usado en condicionales)

!=(diferente a)
<=(menor o igual a)
>=(mayor o igual a)


en pocas palabras en :

NoRank = 0 and Up = 0

te falta un signo de igual

NoRank == 0 and Up == 0
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #6 (permalink)  
Antiguo 20/06/2011, 16:38
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Update no cumple la 5ta condición!

En mysql, la comparación de igualdad se hace con el signo = solo, no doble.
  #7 (permalink)  
Antiguo 20/06/2011, 16:54
Avatar de solhdeck  
Fecha de Ingreso: junio-2011
Mensajes: 87
Antigüedad: 12 años, 10 meses
Puntos: 32
Respuesta: Update no cumple la 5ta condición!

Yo estoy con ocp001a, asegúrate de que el campo up es de tipo numérico; si no lo es, prueba sustituir el = por un like

and Up like '0'
  #8 (permalink)  
Antiguo 20/06/2011, 16:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Update no cumple la 5ta condición!

Creo que seguimos sin entender.

No es lo mismo:
Cita:
WHERE x = y AND m = n AND foo = bar
que...
Cita:
WHERE (x = y) AND (m = n) AND (foo = bar)
ni...
Cita:
WHERE x = y AND (m = n AND foo = bar)
o...
Cita:
WHERE (x = y AND m = n) AND foo = bar
etc...

La idea de los paréntesis es precisamente agrupar lógicamente las condiciones, pues el no usarlos correctamente -repito- produce consultas ambiguas.

En si, la lógica de las comparaciones puede ser correcta pero eso no aplica con el orden e importancia de las mismas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 21/06/2011, 00:02
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Update no cumple la 5ta condición!

que bueno que me ayudaron muchisimas gracias.

hice caso a la recomendación de solhdeck para colocar "like", ya que mi campo es de tipo int.
y al parecer funciona de maravilla :D
Muchisimas gracias de nuevo por responder!!

Etiquetas: condición, cumple, update
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 21:47.