Foros del Web » Programando para Internet » PHP »

Almacenar dato según radiobutton.

Estas en el tema de Almacenar dato según radiobutton. en el foro de PHP en Foros del Web. Buenas! Como va? Soy nuevo por acá... Estoy husmeando un poco esto de php y mysql, y me dispuse a hacer unas cositas. La cosa ...
  #1 (permalink)  
Antiguo 10/01/2013, 10:16
 
Fecha de Ingreso: enero-2013
Mensajes: 16
Antigüedad: 11 años, 3 meses
Puntos: 0
Almacenar dato según radiobutton.

Buenas! Como va? Soy nuevo por acá...

Estoy husmeando un poco esto de php y mysql, y me dispuse a hacer unas cositas.
La cosa es que se me tranqué con algo y quería consultarles a ver si ustedes pueden decirme que es lo que estoy haciendo mal :P

Lo que quiero hacer es: tengo un textbox donde se ingresa un ID, 2 radiobuttons y un botón de submit.
Y según el radio que se seleccione, se modifique un campo en la base de datos.
Peeeeeero, resulta que con el código que tengo, no hace nada. ja


Este es mi código:
Código:
<?php
$estado=$_POST['radio'];
$id=$_POST['IDSolicitud'];

if($estado==1){
$guardar = mysql_query("UPDATE personas SET estado=\"Confirmado\" WHERE id='$id');");
}

if(estado==2){
$guardar = mysql_query("UPDATE personas SET estado=\"Rechazado\" WHERE id='$id');");
}

mysql_close(); 

?>

Código:
<form id="form1" name="form1" method="post" action="estado.php">
      <label>
      <div align="right"><span class="igual">ID de solicitud</span>
        <input name="IDSolicitud" type="text" id="IDSolicitud" size="10" />
      </div>
      <br />
      </label>
      <label>
      <div align="right"><span class="igual">        Aceptar      </span>
        <input name="radio" type="radio" id="si" value="1" checked="checked" />
        <span class="igual">Rechazar</span>
        <input type="radio" name="radio" id="no" value="2" />
        <br />
        <br />
        <input type="submit" name="Confirmar" id="Confirmar" value="Confirmar" />
      </div>
      </label>
      <label></label>
    </form>

Alguna idea de que estoy haciendo mal?

Gracias!!!
  #2 (permalink)  
Antiguo 10/01/2013, 10:28
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Almacenar dato según radiobutton.

Por que pones: $guardar = mysql_query("UPDATE personas SET estado=\"Confirmado\" WHERE id='$id');");

no seria de esta manera: $guardar = mysql_query("UPDATE personas SET estado='Confirmado' WHERE id = $id");, la variable si es de tipo INT es sin la comillas simples pero si es de tipo VARCHAR es con las comillas simples. Y aparte de eso no veo que este declarando la conexión que seria; mysql_select_db($database_conexion, $conexion);

Quedaría de esta manera:

Código PHP:
Ver original
  1. <?php
  2.     $estado = $_POST['radio'];
  3.     $id=$_POST['IDSolicitud'];
  4.  
  5.     if($estado==1){
  6.         $SqlQuery = "UPDATE personas SET estado='Confirmado' WHERE id = $id";
  7.         mysql_select_db($database_conexion, $conexion) or die('No se puede conectar a la base de datos. ' . mysql_error());
  8.         $guardar = mysql_query($SqlQuery, $conexion);
  9.     }
  10.  
  11.     if(estado==2){
  12.         $SqlQuery = "UPDATE personas SET estado='Rechazado' WHERE id = $id";
  13.         mysql_select_db($database_conexion, $conexion) or die('No se puede conectar a la base de datos. ' . mysql_error());
  14.         $guardar = mysql_query($SqlQuery, $conexion);
  15.     }
  16.  
  17.     mysql_close();
  18.  
  19. ?>

Última edición por DeivisAndres; 10/01/2013 a las 10:37
  #3 (permalink)  
Antiguo 10/01/2013, 10:37
 
Fecha de Ingreso: enero-2013
Mensajes: 16
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Almacenar dato según radiobutton.

Sin las comitas tampoco funciona, las puse en un intento de encontrar el error. (Ya las quité).

La consulta funciona bien porque la probé directamente en phpmyadmin.

Y la conexión ya está establecida, solo que no la puse en el código que mostré aquí arriba.

Gracias!
  #4 (permalink)  
Antiguo 10/01/2013, 10:39
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Almacenar dato según radiobutton.

Que bien que te funcione, y probaste el ejemplo que te puse.
  #5 (permalink)  
Antiguo 10/01/2013, 10:45
 
Fecha de Ingreso: enero-2013
Mensajes: 16
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Almacenar dato según radiobutton.

No entendí que sería $database_conexion y $conexion, yo lo hago por separado.
Lo tengo así:

<?php

$db_host="xxx";
$db_usuario="xxx";
$db_password="xxx";
$db_nombre="xxx";
$conexion = @mysql_connect($db_host, $db_usuario, $db_password) or die(mysql_error());
$db = @mysql_select_db($db_nombre, $conexion) or die(mysql_error());

$estado=$_POST['radio'];
$id=$_POST['IDSolicitud'];

if($estado==1){
$guardar = mysql_query("UPDATE personas SET estado=\"Confirmado\" WHERE id=$id');");
}

if(estado==2){
$guardar = mysql_query("UPDATE personas SET estado=\"Rechazado\" WHERE id=$id);");
}

mysql_close();

?>


EDIT: Nop, tampoco me anda con ese ejemplo.

Última edición por brunob1523; 10/01/2013 a las 10:51
  #6 (permalink)  
Antiguo 10/01/2013, 10:52
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Almacenar dato según radiobutton.

mmmm ok bueno seria de esta forma entonces:

Código PHP:
Ver original
  1. <?php
  2.     $db_host="xxx";
  3.     $db_usuario="xxx";
  4.     $db_password="xxx";
  5.     $db_nombre="xxx";
  6.     $conexion = @mysql_connect($db_host, $db_usuario, $db_password) or die(mysql_error());
  7.     $db = @mysql_select_db($db_nombre, $conexion) or die('No se puede conectar a la base de datos. ' . mysql_error());
  8.  
  9.         $estado = $_POST['radio'];
  10.         $id = $_POST['IDSolicitud'];
  11.  
  12.         if($estado==1){
  13.             $SqlQuery = "UPDATE personas SET estado='Confirmado' WHERE id = $id";
  14.             $guardar = mysql_query($SqlQuery, $conexion);
  15.         }
  16.  
  17.         if(estado==2){
  18.             $SqlQuery = "UPDATE personas SET estado='Rechazado' WHERE id = $id";           
  19.             $guardar = mysql_query($SqlQuery, $conexion);
  20.         }
  21.  
  22.         mysql_close();
  23.  
  24. ?>
  #7 (permalink)  
Antiguo 10/01/2013, 11:00
 
Fecha de Ingreso: enero-2013
Mensajes: 16
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Almacenar dato según radiobutton.

Opa, hay avances. Ahora funciona, pero parcialmente, funciona solo con la parte de Confirmado.
  #8 (permalink)  
Antiguo 10/01/2013, 11:06
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Almacenar dato según radiobutton.

Porque en la parte donde verifica que si es 2 le falta $:

Asi lo tienes:

Código PHP:
Ver original
  1. if(estado==2)

Debe ser asi:

Código PHP:
Ver original
  1. if($estado==2){
  #9 (permalink)  
Antiguo 10/01/2013, 11:08
 
Fecha de Ingreso: junio-2012
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Almacenar dato según radiobutton.

Saludos, en el segundo if te falta "$",,, tomando el ejemplo, yo lo realizaría así

<?php
$db_host="xxx";
$db_usuario="xxx";
$db_password="xxx";
$db_nombre="xxx";
$conexion = @mysql_connect($db_host, $db_usuario, $db_password) or die(mysql_error());
$db = @mysql_select_db($db_nombre, $conexion) or die('No se puede conectar a la base de datos. ' . mysql_error());

$estado = $_POST['radio'];
$id = $_POST['IDSolicitud'];

if($estado==1)
{
$estado='Confirmado';
}else
{
$estado='Rechazado';
}


$SqlQuery = "UPDATE personas SET estado=".$estado." WHERE id = $id";
$guardar = mysql_query($SqlQuery, $conexion);


mysql_close();

?>
  #10 (permalink)  
Antiguo 10/01/2013, 11:11
 
Fecha de Ingreso: enero-2013
Mensajes: 16
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Almacenar dato según radiobutton.

Uhh, que bolu no me di cuenta!
Ahora si, quedó funcionando impecable.

Muchas gracias gente!
Saludos.

Etiquetas: almacenar, dato, mysql, según
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 19:37.