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

Problema con UPDATE

Estas en el tema de Problema con UPDATE en el foro de Mysql en Foros del Web. Saludos, Tengo que actualizar un campo entero (cam). de una tabla(tab), dependiendo el valor que tenga ...: INICIA: idTab: 1-2-3-4-5 cam: 1-2-3-4-5 Necesito que al ...
  #1 (permalink)  
Antiguo 03/04/2010, 12:46
colombianDreams
Invitado
 
Mensajes: n/a
Puntos:
Problema con UPDATE

Saludos,

Tengo que actualizar un campo entero (cam). de una tabla(tab), dependiendo el valor que tenga ...:

INICIA:

idTab: 1-2-3-4-5
cam: 1-2-3-4-5

Necesito que al presionar un boton se actualice cam, de tal modo que si vale entre 1 y 4 se le

sume uno al valor que tiene (cam=cam+1) y si tiene 5 que se actualice con 1.


ASI:

idTab: 1-2-3-4-5
cam: 2-3-4-5-1

El problema es que estoy tratando de hacerlo con dos update y tengo problema con actualizar el

numero 5

ME SALE:

idTab: 1-2-3-4-5
cam: 2-3-4-1-1

Porque cuando pasa por el primer update convierte el 4 en 5, pero al pasar por el siguiente update

lo modifica de nuevo y lo pone en 1.

Este es el codigo

Código PHP:
include("conex.php");
$link=Conectarse();

$sql="Select cam From tab ";


$result mysql_query($sql$link) OR die("Error al consultar datos");

while(
$row mysql_fetch_array($result))
{
            
    
$sql3="update tab set cam=cam+1 where cam>=1 and cam<=4 ORDER BY idRuta DESC";//
    
mysql_query($sql3);
            
            
            
$sql4="update vehiculos set cam=1 where cam=5";//
            
mysql_query($sql4);        
}


//Se hace la consulta a la base de datos
header("location:listarCam.php?id=id");

?> 
Quiero saber si hay alguna forma de actualizar un campo de una tabla, teniendo en cuenta dos condiciones,
gracias.

Última edición por colombianDreams; 03/04/2010 a las 12:48 Razón: Olvide lo ultimo
  #2 (permalink)  
Antiguo 03/04/2010, 12:55
 
Fecha de Ingreso: abril-2006
Ubicación: Bogotá
Mensajes: 251
Antigüedad: 18 años
Puntos: 14
Respuesta: Problema con UPDATE

Hola,

Si lo que necesitas es que si el valor de "cam" se encuentra entre 1 y 4 incremente el valor en 1, y si es mayor a 4 o menor a 1 coloque el valor 1 en el campo puedes hacer lo siguiente:

Código:
UPDATE tab SET cam = IF(cam >= 1 && cam <= 4, cam+1, 1 )
ó así que también sirve:
Código:
UPDATE tab 
  SET cam = CASE WHEN (cam >= 1 AND cam <= 4)
          THEN cam+1
      ELSE 
           1
      END
Saludos espero que te sirva.

Última edición por delta132; 03/04/2010 a las 13:02
  #3 (permalink)  
Antiguo 03/04/2010, 13:10
colombianDreams
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con UPDATE

Se vé bien, ya mismo voy a probarlo ........................ gracias.
  #4 (permalink)  
Antiguo 03/04/2010, 13:21
colombianDreams
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con UPDATE

Bueno, no hace nada ....................... pero voy a seguir probando.............
  #5 (permalink)  
Antiguo 03/04/2010, 13:25
 
Fecha de Ingreso: abril-2006
Ubicación: Bogotá
Mensajes: 251
Antigüedad: 18 años
Puntos: 14
Respuesta: Problema con UPDATE

Cita:
Iniciado por colombianDreams Ver Mensaje
Bueno, no hace nada ....................... pero voy a seguir probando.............
Cómo así que no hace nada?

Sólo es ejecutar esa sentencia en un archivo .php

Código PHP:
<?php
include("conex.php");
$link=Conectarse();

$sql="UPDATE tab SET cam = IF(cam >= 1 && cam <= 4, cam+1, 1 ) ";
$result mysql_query($sql$link) OR die("Error al consultar datos");

//Se hace la consulta a la base de datos
header("location:listarCam.php?id=id");
Lo que hará es coger los cam de la tabla tab y si el valor del campo esta dentro de 1 y 4 lo incrementara en 1, de lo contrario colocara el valor 1 en el campo ...
Saludos!
  #6 (permalink)  
Antiguo 03/04/2010, 16:33
colombianDreams
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con UPDATE

Parcero mil gracias!!!

Ya lo probé y me funcionó ....................... un abrazo desde Colombia!

Etiquetas: 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 22:15.