Foros del Web » Programando para Internet » PHP »

Problema recogiendo valores de checkbox

Estas en el tema de Problema recogiendo valores de checkbox en el foro de PHP en Foros del Web. Hola, perdonen mi ignorancia antes que nada jeje..bueno a lo que iva, he echo un formulario en html con los siguientes campos: <input type="radio" value="No" ...
  #1 (permalink)  
Antiguo 05/02/2009, 05:09
 
Fecha de Ingreso: julio-2008
Mensajes: 247
Antigüedad: 11 años, 5 meses
Puntos: 9
Mensaje Problema recogiendo valores de checkbox

Hola, perdonen mi ignorancia antes que nada jeje..bueno a lo que iva, he echo un formulario en html con los siguientes campos:

<input type="radio" value="No" name="A1">&nbsp;&nbsp;&nbsp; No<br>
<input type="radio" value="Si" name="A2" checked>&nbsp;&nbsp;&nbsp; Sí<br>
<br>
<br>
<br>
<input type="radio" value="No" name="B1" checked>&nbsp;&nbsp;&nbsp; No<br>
<input type="radio" value="Si" name="B2" checked>&nbsp;&nbsp;&nbsp; Sí<br>

Como se puede observar, lo que estoy haciendo es algo parecido a un cuestionario, ahora bien, el problema lo tengo al crear la base de datos, que codigo necesito para que me coja los valores de esos campos y me los meta en una base de datos????
  #2 (permalink)  
Antiguo 05/02/2009, 05:17
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 10 años, 10 meses
Puntos: 7
Respuesta: ayudita ...!!! :O

Hola,

Quiero dar por hecho, que el formulario lo has envuelto con etiquetas <form>.. El siguiente error que veo, es que tienes dos input radio con diferentes nombres y uno es SI y otro es NO. Para que pueda seleccionar uno sólo (tipo cuestionario) debes darle el mismo nombre, para obligar al usuario a elegir uno de los dos y no los dos:

Código HTML:
<input type="radio" value="No" name="A1" />
<input type="radio" value="Si" name="A1" checked /> 
No sé si entiendes lo que te digo (mira el atributo NAME)

En php recogerías los datos y lo meterías en la bd, algo así:

Código PHP:
$a1 $_POST['A1'];
$b1 $_POST['B1'];

$insertar mysql_query("INSERT INTO tu_tabla (a1, b2) VALUES('$a1', '$b1')");

if(
$insertar){
   die(
"ok");
}else{
   die(
mysql_error())

  #3 (permalink)  
Antiguo 05/02/2009, 08:03
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: ayudita ...!!! :O

nada mas que decir, excelente respuesta
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #4 (permalink)  
Antiguo 05/02/2009, 08:34
 
Fecha de Ingreso: julio-2008
Mensajes: 247
Antigüedad: 11 años, 5 meses
Puntos: 9
Respuesta: ayudita ...!!! :O

Cita:
Iniciado por d-ART Ver Mensaje
Hola,

Quiero dar por hecho, que el formulario lo has envuelto con etiquetas <form>.. El siguiente error que veo, es que tienes dos input radio con diferentes nombres y uno es SI y otro es NO. Para que pueda seleccionar uno sólo (tipo cuestionario) debes darle el mismo nombre, para obligar al usuario a elegir uno de los dos y no los dos:

Código HTML:
<input type="radio" value="No" name="A1" />
<input type="radio" value="Si" name="A1" checked /> 
No sé si entiendes lo que te digo (mira el atributo NAME)

En php recogerías los datos y lo meterías en la bd, algo así:

Código PHP:
$a1 $_POST['A1'];
$b1 $_POST['B1'];

$insertar mysql_query("INSERT INTO tu_tabla (a1, b2) VALUES('$a1', '$b1')");

if(
$insertar){
   die(
"ok");
}else{
   die(
mysql_error())

Si si, todo lo que me dices en cuanto al form, lo tengo echo, lo unico es k no lo kise poner aki para no ocupar demasiado espacio....
En cuanto al codigo de la Base de datos ok me vale... ¿Pero antes debo crear una base de datos no?¿Y en dicha base de datos debo crear dos tablas no ?? eso es lo k dudo...
  #5 (permalink)  
Antiguo 05/02/2009, 09:01
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: ayudita ...!!! :O

Cita:
Si si, todo lo que me dices en cuanto al form, lo tengo echo
Tenias un error colosal, asi que no tienes el formulario correctamente hecho.

Cita:
En cuanto al codigo de la Base de datos ok me vale... ¿Pero antes debo crear una base de datos no?
Vas a insertar los datos a una base de datos ... entonces ... duh, se supone que necesitas haber creado una base de datos anteriormente. Las bases de datos no aparecen magicamente.

Cita:
¿Y en dicha base de datos debo crear dos tablas no ??
Te recomiendo te leas un manual de estructura de base de datos, urgentemente.

Cita:
que codigo necesito para que me coja los valores de esos campos y me los meta en una base de datos????
mysql_connect()
mysql_select_db()
mysql_query()
mysql_fetch_[assoc|array|row|object]()
  #6 (permalink)  
Antiguo 05/02/2009, 09:48
 
Fecha de Ingreso: julio-2008
Mensajes: 247
Antigüedad: 11 años, 5 meses
Puntos: 9
Respuesta: ayudita ...!!! :O

Cita:
Iniciado por Ronruby Ver Mensaje
Tenias un error colosal, asi que no tienes el formulario correctamente hecho.



Vas a insertar los datos a una base de datos ... entonces ... duh, se supone que necesitas haber creado una base de datos anteriormente. Las bases de datos no aparecen magicamente.



Te recomiendo te leas un manual de estructura de base de datos, urgentemente.



mysql_connect()
mysql_select_db()
mysql_query()
mysql_fetch_[assoc|array|row|object]()
----- Antes k nada gracias por tu respuesta por supuesto, y luego, perdona pero repito que lo del form lo tengo perfecto, repito k aki solo puse lo necesario, y en lo de las bases de datos ya la he creado, lo que me falta es saber si debo crear las tablas y cuantas debo crear??
  #7 (permalink)  
Antiguo 05/02/2009, 12:24
 
Fecha de Ingreso: julio-2008
Mensajes: 247
Antigüedad: 11 años, 5 meses
Puntos: 9
Mensaje Respuesta: ayudita ...!!! :O

Hola de nuevo, he estado leyendo y leyendo, y ya lo tengo todo casi preparado, lo unico es que me falta saber si para esto:

<input type="radio" value="No" name="A1">&nbsp;&nbsp;&nbsp; No<br>
<input type="radio" value="Si" name="A1" checked>&nbsp;&nbsp;&nbsp; Sí<br>

¿Que tipo de valores darle al campo de la tabla?, es decir ya cree la bd, y tambien cree la tabla, en la tabla asigne 2 campos pero para esos campos me pide:
TypeDocumentation
Length/Values1
Collation
Attributes
Null
Default2
Extra
primary/Index/Unnique
entonces para el tipo de form que yo hize, para que me recoja los datos correctamente que valor asigno a cada campo de los anteiores.
  #8 (permalink)  
Antiguo 05/02/2009, 12:39
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.654
Antigüedad: 14 años, 5 meses
Puntos: 88
Respuesta: Problema recogiendo valores de checkbox

si quieres guardar los valores "si" y "no", puedes usar el tipo char de long. 2 con not null para asegurarte que siempre tenga valor el campo, ahora que también puedes usar tinyint de 1 y guardas 0(cero) para "no" y 1(uno) para "si" como si fuera un boleano, pero creo(no estoy seguro) que eso dependerá de la version de mysql que tengas, porque las versiones mas actuales, me parece que ya tienen la opción de boolean, te repito, no lo tengo seguro , es cuestion de que lo verifiques.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #9 (permalink)  
Antiguo 05/02/2009, 16:08
 
Fecha de Ingreso: julio-2008
Mensajes: 247
Antigüedad: 11 años, 5 meses
Puntos: 9
Respuesta: Problema recogiendo valores de checkbox

Cita:
Iniciado por eits Ver Mensaje
si quieres guardar los valores "si" y "no", puedes usar el tipo char de long. 2 con not null para asegurarte que siempre tenga valor el campo, ahora que también puedes usar tinyint de 1 y guardas 0(cero) para "no" y 1(uno) para "si" como si fuera un boleano, pero creo(no estoy seguro) que eso dependerá de la version de mysql que tengas, porque las versiones mas actuales, me parece que ya tienen la opción de boolean, te repito, no lo tengo seguro , es cuestion de que lo verifiques.

saludos.
Ok pero recordad que lo que quiero que recoja no es un valor numerico sino un valor de opcion, por lo que no entiendo para que poner lo de la longitud y i me funcionara asi.
  #10 (permalink)  
Antiguo 05/02/2009, 18:10
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: Problema recogiendo valores de checkbox

pues entonces con solo 1 campo te sobra para guardar estos valores, pero si quieres que dependiendo de si es una u ptra respuesta lo guarde en un campo especial entonces usa los 2 campos en tipo char con longitud de 2, para que no tengas problemas (seria mejor que en un solo campo guardes estas respuestas, y si quieres despues ver si los resultados es si o na lo puedes hacer mas facilmente.
salu2!
  #11 (permalink)  
Antiguo 05/02/2009, 18:19
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 10 años, 10 meses
Puntos: 7
Respuesta: Problema recogiendo valores de checkbox

Hola,

No te líes con tanto término, es más sencillo de lo que parece ;)

1º) Creas un archivo conexion.php

Código PHP:
<?php

    
###################################################################
    # Datos conexion  #######################################################
    ###################################################################
    
$dbhost "localhost";             // servidor de mysql
    
$dbuser "usuario_bd";            // usuario de la base de datos
    
$dbpass "password";            // password de la base de datos
    
$dbname "nombre_bd";        // nombre de la base de datos
    ###################################################################
    
    
       
$conectar mysql_connect($dbhost$dbuser$dbpass) or die ("Error conectando a la base de datos.");

?>


Y lo requieres en el archivo donde vas a insertar los datos, supongamos que es form.php (arriba del todo, pero siempre envuelto en etiquetas <?php ?>:

Código PHP:
require("ruta-del-archivo-anterior/conexion.php"); 



Seguimos editando el archivo al que hemos llamado form.php (encargado de recoger los datos del formulario e insertarlos en la bd:

Código PHP:
$a1 $_POST['A1'];
$b1 $_POST['B1'];

// seleccionamos la bd
mysql_select_db($dbname$conectar);

// insertamos los datos en la bd
$insertar mysql_query("INSERT INTO tu_tabla (a1, b2) VALUES('$a1', '$b1')");

if(
$insertar){
   echo 
"<script>alert('OK: Datos introducidos en la base de datos');</script>;
}else{
   die(mysql_error())

La tabla que hemos creado se llama tu_tabla, y tiene los campos siguientes:

Código:
id [int autoincrement]
a1 [varchar (2)]
b2 [varchar (2)]

Y ya está, no era tan complicado.. ¿no?
  #12 (permalink)  
Antiguo 06/02/2009, 09:09
 
Fecha de Ingreso: julio-2008
Mensajes: 247
Antigüedad: 11 años, 5 meses
Puntos: 9
Respuesta: Problema recogiendo valores de checkbox

ok gracias muchisimas gracias por tu ayuda, ya cree la base de datos, tambien he creado el form y en action le puse por ejemplo el archivo insertar.php, pero me salta un error:

Parse error: syntax error, unexpected '}' in /home/a8131925/public_html/insertar.php on line 11

el contenido de insertar.php es:
Cita:
<?php
$a1 = $_POST['A1'];
$b1 = $_POST['B1'];

$insertar = mysql_query("INSERT INTO encuesta (a1, b1) VALUES('$a1', '$b1')");

if($insertar){
die("ok");
}else{
die(mysql_error())
}
?>
P.D: como el error me dice que es esto: } pues probe kitandoselo, y me salto otro error en la linea 12, nose que podra ser...:S:S:S

P.D: segui probando y probando y me di cuenta que no tenia relaion el insertar.php, con el conexion.php,por lo que le puse despues de la etiketa <?php lo siguiente:
require("public_html/conexion.php");
Pero me dice ( los datos fueron guardados correctamente, ) y me aparece acontinuacion el codigo en pantalla cosa que no deberia, luego voy a mirar en la base de datos y no me aparece nada guardado
:(:(:(:(:((:

Última edición por winjose; 06/02/2009 a las 10:13
  #13 (permalink)  
Antiguo 06/02/2009, 11:15
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: Problema recogiendo valores de checkbox

te falta un punto y coma en die(mysql_error());
  #14 (permalink)  
Antiguo 06/02/2009, 19:13
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 10 años, 10 meses
Puntos: 7
Respuesta: Problema recogiendo valores de checkbox

Hola,

¿Puedes pegar aqui archivo por archivo? Es decir, conexion.php y insertar.php, ambos envueltos con etiquetas PHP, por favor.

Y otra cosa, ¿puedes poner la estructura de tu bd? El .sql o el tipo de campos y sus nombres.. algo orientativo.

Gracias,
Saludos.
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 13:29.