Foros del Web » Programando para Internet » PHP »

Problema php y mysql

Estas en el tema de Problema php y mysql en el foro de PHP en Foros del Web. Tengo un problema con el siguiente codigo: Código: $kuser = mysql_query("SELECT * FROM user WHERE id='".$user."' LIMIT 1", $conn); $info_user = mysql_fetch_assoc($kuser); if($info_user['limite']>0){ mysql_query("UPDATE user ...
  #1 (permalink)  
Antiguo 06/05/2010, 19:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Problema php y mysql

Tengo un problema con el siguiente codigo:

Código:
$kuser = mysql_query("SELECT * FROM user WHERE id='".$user."' LIMIT 1", $conn);
$info_user = mysql_fetch_assoc($kuser);
if($info_user['limite']>0){
mysql_query("UPDATE user SET limite=limite-1 WHERE id='".$user."'"); //aqui realizo mas acciones en la bbdd
}
El limite se resetea cada dia a 50, por lo que pueden realizar esa acción 50 veces al dia.

El problema es que me encuentro en la bbdd campos limites con numeros negativos.

He comprobado que si le doy muy seguido al F5 me deja hacer mas de 50 veces la acción, (por ejemplo 52 o 53 depende del día y momento) y luego me aparece -X en el limite.

Puede ser que tarde mas en hacer el update anterior en hacer el nuevo select?

Como puedo solucionar eso?

Gracias
  #2 (permalink)  
Antiguo 07/05/2010, 10:07
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: Problema php y mysql

Hola sarcus,

En estos momentos tengo un código que funciona muy parecido al tuyo, al leer tu problema me entro la duda:
Código PHP:
<?php
$pk 
mysql_fetch_array(mysql_query("SELECT * FROM productos WHERE id_producto='4' LIMIT 1"));

if(
$pk['existencias'] > 0)
{
    echo 
"Aun hay existencias ".$pk['existencias'];    
    
mysql_query("UPDATE productos SET existencias=existencias-1 WHERE id_producto='4' LIMIT 1");
}
else
{
    echo 
"No hay existencias";    
}
?>
Pero igual he probado como tu comentas, actualizar varias veces y funciona bastante bien, al llegar a cero no realiza mas updates. Jamas entra en numeros negativos.

Se me ocurre que el comportamiento que mencionas se podría llegar a reproducir si no dejamos que concluya el proceso antes de refrescar la pagina, esto seria mas notorio contra mas lento fuera el servidor.

Saludos,
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #3 (permalink)  
Antiguo 08/05/2010, 14:58
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema php y mysql

A ver pasar no pasa siempre, solo algunas veces.

De unos 4000 usuarios igual acaban en negativo una media de 10 o asi. Supongo que pasa cuando el servidor va mas sobrecargado.

No hay una solución para eso?

Gracias
  #4 (permalink)  
Antiguo 10/05/2010, 09:27
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: Problema php y mysql

Cita:
Iniciado por sarcus Ver Mensaje
No hay una solución para eso?
Bueno, definitivamente es algo muy raro, una solución simple (en mi opinión) sería restringir la clausula WHERE del update para evitar eso.

En tu caso, algo como:

Código:
WHERE id='".$user."' AND limite > 0


Saludos,
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico

Etiquetas: mysql
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 01:29.