Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Editar varios campos a la vez

Estas en el tema de Editar varios campos a la vez en el foro de Mysql en Foros del Web. Buenas, estoy haciendo una pequeño script en php para aprender y he llegado a la parte de conexiones sql y eso.. Y en el script ...
  #1 (permalink)  
Antiguo 18/09/2009, 15:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Editar varios campos a la vez

Buenas, estoy haciendo una pequeño script en php para aprender y he llegado a la parte de conexiones sql y eso.. Y en el script quiero llevar una cuenta "acumulada" de meses por usuario..

Mi pregunta es la siguiente:

Tengo una base de datos con los siguientes campos

ID - Usuario - Acumulado

Supongamos que tengo los siguientes datos

ID - Usuario - Acumulado
1 - User 1 - 1mes
2 - User 3 - 2meses
3 - User 3 - 3meses

Y quiero que de 1 solo query el acumulado aumente, por ejemplo, si tiene 0 meses, pase a 1 mes, con 2 meses, a 3 meses y asi.. Mas o menos este es el codigo que tengo:

Código PHP:
  $sql "SELECT * FROM clientes";
  
$res mysql_query($sql$conn) or die(mysql_error());
  
$row mysql_fetch_assoc($res);
  
$acumulado$row["acumulado"];
  if(
$acumulado == "Al Dia"){
                
$acumulado2 "1 mes";
                
$sql_resta="UPDATE clientes SET acumulado = '" .$acumulado2."'";
                   
mysql_query($sql_resta$conn) or die(mysql_error());
            }


El caso es que.. Me hace update de todos los campos, es decir me lee solo el primero y hace el update en todos los campos segun ese, entonces me daja la tabla asi

ID - Usuario - Acumulado
1 - User 1 - 2meses
2 - User 3 - 2meses
3 - User 3 - 2meses


Gracias por adelantado :P
  #2 (permalink)  
Antiguo 21/09/2009, 00:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Editar varios campos a la vez

UPDATE clientes SET acumulado = '" .$acumulado2."' WHERE acumulado='Al Dia'

Debes poner una restrición que indique que registros hay que modificar... en este caso no haria falta el condicional previo.... ni leer los registros ya que va ha modificar todos los que cumplan acumulado='Al Dia'

Sugerencia: si lo que quires es aumentar un mes a todos, luego porque no defines el campo acumulados como numerico y sumas 1 al numero que tenga, es decir

UPDATE clientes cl SET cl.acumulado = cl.acumulado +1

Así con una sola consulta, la de actualización, tienes bastante....

Quim
  #3 (permalink)  
Antiguo 22/09/2009, 10:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Editar varios campos a la vez

Por favor, evite repetir los temas en varias secciones.

Sigue en: http://www.forosdelweb.com/f18/acumu...cionar-737011/
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 20:43.