Comunidad de diseño web y desarrollo en internet online

necesito de su ayuda en mysql y la opcion UPDATE

Citar            
MensajeEscrito el 10 Abr 2010 12:09 am
no puedo lograr es que actualize la base de datos
estoy restando en numero que mandan del formulario menos los puntos que hay en la base de datos, me manda bien la info pero no me actualiza este es el codigo

Código PHP :

$consulta = "SELECT puntos FROM registro_cuenta WHERE puntos = puntos";  

   $query = mysql_query($consulta);  
    
   $puntos = mysql_fetch_array($query);  

   if($puntos['puntos'] >= 40){  
    
    $puntos_restantes = ($puntos['puntos'] - $puntos_formulario);  

    // el total de puntos restantes lo actualizas a tu db  
   $modificar = "UPDATE `registro_cuenta` SET `puntos` = '$puntos_restantes' WHERE `puntos` = '$puntos'";  
   
   if(mysql_query($modificar)){  
    
   echo 'tus puntos estan en proceso de canje';  

Por cher1_7

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Abr 2010 07:48 am
La consulta SELECT te devuelve todos los registro porque en la cláusula WHERE tiene como condición que el campo punto sea igual al propio campo punto, lo cual es obviamente siempre verdadero.

Luego, de esos registros (toda la tabla en realidad) tomas el primer registro y haces la comparación de que si el campo punto es mayor o igual a 40, suma ese valor más la variable $puntos_formulario y guardas el resultado en $puntos_restantes.

Finalmente haces un update del campo puntos con una cláusula WHERE donde debe cumplirse que el campo puntos sea igual a... el array de resultados de la consulta SELECT ($puntos).

Ya con eso último no debería funcionarte ni para atrás.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Abr 2010 04:30 am
Ok DriverOp son observaciones muy ciertas, sin embargo no has solucionado nada, veras cher_17, lo que sucede es sencillo,
para resolver los 3 problemas es necesario comenzar por el primero yo lo solucionaria así:

Código :


// Coloca en esta variable el valor de puntos que se buscarán en la base de datos
$puntos_consulta = " 50";
//Ahora corregimos la consulta
$consulta = "SELECT puntos FROM registro_cuenta WHERE puntos = '$puntos_consulta'";  
// Buscaremos el registro con 50 puntos que es el que establecí por default o el que indiques tu en $puntos_consulta
 
   $query = mysql_query($consulta);   
     
   $puntos = mysql_fetch_array($query);   
 
    
    $puntos_restantes = ($puntos['puntos'] - $puntos_formulario);   
 
    // Desconosco la tabla que manejas pero la variable $puntos no es numerica, yo como puntos    
   $modificar = "UPDATE `registro_cuenta` SET `puntos` = '$puntos_restantes' WHERE `puntos` = '".$puntos['puntos']."' ";   
    
   if(mysql_query($modificar)){   
     
   echo 'tus puntos estan en proceso de canje';   
}
// Cierro el if por si acaso aunque puede que no lo requieras cerrar si no es todo el codigo que tienes


 

Por adam_dinzel

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Abr 2010 04:33 am
Ok DriverOp son observaciones muy ciertas, sin embargo no has solucionado nada, veras cher_17, lo que sucede es sencillo,
para resolver los 3 problemas es necesario comenzar por el primero yo lo solucionaria así:

Código :

// Coloca en esta variable el valor de puntos que se buscarán en la base de datos
$puntos_consulta = " 50";
//Ahora corregimos la consulta
$consulta = "SELECT puntos FROM registro_cuenta WHERE puntos = '$puntos_consulta'";  
// Buscaremos el registro con 50 puntos que es el que establecí por default o el que indiques tu en $puntos_consulta
 
   $query = mysql_query($consulta);   
     
   $puntos = mysql_fetch_array($query);   
 
    
    $puntos_restantes = ($puntos['puntos'] - $puntos_formulario);   
 
    // Desconosco la tabla que manejas pero la variable $puntos no es numerica, yo como $puntos  puse  ['puntos']:
   $modificar = "UPDATE `registro_cuenta` SET `puntos` = '$puntos_restantes' WHERE puntos = '".$puntos['puntos']."' ";   
    
   if(mysql_query($modificar)){   
     
   echo 'tus puntos estan en proceso de canje';   
}
// Cierro el if por si acaso aunque puede que no lo requieras cerrar si no es todo el codigo que tienes


 



Saludos.

Por adam_dinzel

7 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.