Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] cambiar estado condicional

Estas en el tema de cambiar estado condicional en el foro de PHP en Foros del Web. Buenas tengo una lista de departamentos con estados y deseo que al hace click en el estado desactive el estado, en mi base de datos ...
  #1 (permalink)  
Antiguo 14/03/2013, 15:18
Avatar de skardo  
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 1
Pregunta cambiar estado condicional

Buenas tengo una lista de departamentos con estados y deseo que al hace click en el estado desactive el estado, en mi base de datos no estoy trabjanado con 0,1, sino con Vendido,Separado;

al momento de hacer mi condicional como puedo hacer para que me compare el estado actual y lo cambie?

http://taklab.com/clientes/zlatsu/admin/

Código PHP:
Ver original
  1. <?php
  2.         $conexion = mysql_connect($puerto,$usuario,$clave);
  3.         mysql_select_db ("taklabco_terapia", $conexion );
  4.         $id_dep=$_GET['id_dep'];
  5.     $dep_estado=$_GET['dep_estado'];
  6.    
  7.     if($dep_estado=vendido){
  8.        $result = mysql_query("update zlatsu set estado=separado where id_dep = $id_dep";);
  9.        header('Location: index.php');
  10.     }
  11.     else{
  12.        $result = mysql_query("update zlatsu set estado=vendido where id_dep = $id_dep";)
  13.      header('Location: index.php');
  14.     }
  15.     ?>

esta bien como lo planteo? helpme please
  #2 (permalink)  
Antiguo 14/03/2013, 15:40
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: cambiar estado condicional

Si bien considero mejor usar datos numéricos en campos tpo estado o status, es posible lo que quieres aunque no como lo planteas:

if($dep_estado=vendido){


php tomará la palabra vendido como una constante que seguramente no estará definida.

if($dep_estado='vendido'){

tendiendo en cuenta que 'vendido' no es lo mismo que 'Vendido', ya que aquí las mayúsculas cuentan.

Y también se requieren los apostrofes para almacenar los datos en la base de datos.
  #3 (permalink)  
Antiguo 14/03/2013, 15:50
Avatar de skardo  
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: cambiar estado condicional

Cita:
Iniciado por ocp001a Ver Mensaje
Si bien considero mejor usar datos numéricos en campos tpo estado o status, es posible lo que quieres aunque no como lo planteas:

if($dep_estado=vendido){


php tomará la palabra vendido como una constante que seguramente no estará definida.

if($dep_estado='vendido'){

tendiendo en cuenta que 'vendido' no es lo mismo que 'Vendido', ya que aquí las mayúsculas cuentan.

Y también se requieren los apostrofes para almacenar los datos en la base de datos.
gracias x responder, si tambien imagine eso asi que esas palabras las encerre en una variable para compararlas, algo asi, pero nose como hacerle para que me funcione bien, cuando le doy click encima del estado "vendido" se cambia a "separado" pero no me hace cuando hago click en "separado" para que me cambie a "vendido", puedes ayudarme en el codigo porfavor

Código PHP:
Ver original
  1. mysql_select_db ("taklabco_terapia", $conexion );
  2.     $vendido = "vendido";
  3.     $separado = "separado";
  4.     $dep_estado=$_POST['dep_estado'];
  5.         $id_dep=$_GET['id_dep'];
  6.    
  7.     if ($dep_estado=!($vendido))
  8.     {
  9.     $query = "update zlatsu set dep_estado='$vendido' where id_dep = $id_dep";
  10.      $result = mysql_query($query);  
  11.     }
  12.     else{
  13.     $query = "update zlatsu set dep_estado='$separado' where id_dep = $id_dep";
  14.      $result = mysql_query($query);
  15.     }
  16.    
  17.     header('Location: index.php');
  #4 (permalink)  
Antiguo 14/03/2013, 16:03
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: cambiar estado condicional

¿Dar click en un estado? ¿entonces lo quieres hacer por un enlace? de ser así, el problema es que los datos los pasas por GET y no por POST, con lo que

$dep_estado=$_POST['dep_estado'];
$id_dep=$_GET['id_dep'];

no funcionaría bien, tendría que ser:

$dep_estado=$_GET['dep_estado'];
$id_dep=$_GET['id_dep'];

o bien muestra cómo pasas los parámetros.
  #5 (permalink)  
Antiguo 14/03/2013, 16:08
Avatar de skardo  
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: cambiar estado condicional

Cita:
Iniciado por ocp001a Ver Mensaje
¿Dar click en un estado? ¿entonces lo quieres hacer por un enlace? de ser así, el problema es que los datos los pasas por GET y no por POST, con lo que

$dep_estado=$_POST['dep_estado'];
$id_dep=$_GET['id_dep'];

no funcionaría bien, tendría que ser:

$dep_estado=$_GET['dep_estado'];
$id_dep=$_GET['id_dep'];

o bien muestra cómo pasas los parámetros.
asi es checa por favor aqui http://taklab.com/clientes/zlatsu/admin/ , al principio pense pasar el estado y el id , pero despues pense en declarar las variables estables que son estas
$vendido = "vendido";
$separado = "separado";
y luego compararlas con las ke estan en estado de la base de datos, asi aria el condicional, me dejo entender?
  #6 (permalink)  
Antiguo 14/03/2013, 16:18
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: cambiar estado condicional

sí, entendí desde tu segundo mensaje, lo que tienes que comprender es lo siguiente:

o pasas el estado del elemento dentro del mismo enlace, o bien pasas sólo el id, y donde recibes el id lees nuevamente el estado del elemento para ponerlo en un estado u otro.

Resumen: de la forma que lo estás haciendo ahora, cuando recibes los datos del id, no sabes realmente el estado del elemento.

la primer opción modificando el enlace es:

<a href="index_estado.php?id_dep=4">(cambiar)</a>

<a href="index_estado.php?id_dep=$id_dep&dep_estado=$dep_estado">(cambiar)</a>


o bien, sigues pasando sólo el id, y en tu script donde lo recibes primero verificas el estado para después cambiarlo por otro.
  #7 (permalink)  
Antiguo 14/03/2013, 16:28
Avatar de skardo  
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: cambiar estado condicional

Cita:
Iniciado por ocp001a Ver Mensaje
sí, entendí desde tu segundo mensaje, lo que tienes que comprender es lo siguiente:

o pasas el estado del elemento dentro del mismo enlace, o bien pasas sólo el id, y donde recibes el id lees nuevamente el estado del elemento para ponerlo en un estado u otro.

Resumen: de la forma que lo estás haciendo ahora, cuando recibes los datos del id, no sabes realmente el estado del elemento.

la primer opción modificando el enlace es:

<a href="index_estado.php?id_dep=4">(cambiar)</a>

<a href="index_estado.php?id_dep=$id_dep&dep_estado=$dep_estado">(cambiar)</a>


o bien, sigues pasando sólo el id, y en tu script donde lo recibes primero verificas el estado para después cambiarlo por otro.
ya, como tu dices, ya modifique y estoy pasando el ID y el ESTADO por el enlance, ahora, como ya lo tenia declarado asi :

Código PHP:
Ver original
  1. $vendido = "vendido";
  2. $separado = "separado";
  3.  $dep_estado=$_GET['dep_estado'];
  4. $id_dep=$_GET['id_dep'];

este if me ayuda a comparar el estado ke traje con la variable vendido cierto?
if ($dep_estado=!($vendido))
la logica del if me falla porke a todas las opciones ke tienen VENDIDO les ago click para cambiarlas y las ejecuta pero no me permite acer lo contrario, si hago click en SEPARADO para cambiar a VENDIDO no me da :/, ke puedo hacer?

Código PHP:
Ver original
  1. if ($dep_estado=!($vendido))
  2.     {
  3.     $query = "update zlatsu set dep_estado='$vendido' where id_dep = $id_dep";    
  4.     }
  5.     else
  6.     {
  7.     $query = "update zlatsu set dep_estado='$separado' where id_dep = $id_dep";
  8.     }
  9.     $result = mysql_query($query);
  10.     header('Location: index.php');
  #8 (permalink)  
Antiguo 14/03/2013, 17:06
Avatar de skardo  
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: cambiar estado condicional

algien que me pueda ayudar porfavor
  #9 (permalink)  
Antiguo 14/03/2013, 17:39
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: cambiar estado condicional

Una de dos o ya llevas mucho tiempo con tu problema y necesitas un respiro o no sabes bien ni que estas haciendo, en fin, con esto bastaria...
Código PHP:
Ver original
  1. mysql_select_db ("taklabco_terapia", $conexion );
  2.     $dep_estado=$_GET['dep_estado'];
  3.     $id_dep=$_GET['id_dep'];
  4.     $estado = ($dep_estado == 'vendido') ? 'separado' : 'vendido';
  5.     $query = "update zlatsu set dep_estado='$estado' where id_dep = $id_dep";
  6.     mysql_query($query);
  7.     header('Location: index.php');
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #10 (permalink)  
Antiguo 15/03/2013, 08:57
Avatar de skardo  
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: cambiar estado condicional

Cita:
Iniciado por Nemutagk Ver Mensaje
Una de dos o ya llevas mucho tiempo con tu problema y necesitas un respiro o no sabes bien ni que estas haciendo, en fin, con esto bastaria...
Código PHP:
Ver original
  1. mysql_select_db ("taklabco_terapia", $conexion );
  2.     $dep_estado=$_GET['dep_estado'];
  3.     $id_dep=$_GET['id_dep'];
  4.     $estado = ($dep_estado == 'vendido') ? 'separado' : 'vendido';
  5.     $query = "update zlatsu set dep_estado='$estado' where id_dep = $id_dep";
  6.     mysql_query($query);
  7.     header('Location: index.php');
muchas gracias , si, necesitaba un respiro :)

Etiquetas: condicional, estado, mysql, select
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 15:15.