Foros del Web » Programando para Internet » PHP »

Ayuda checkbox

Estas en el tema de Ayuda checkbox en el foro de PHP en Foros del Web. Hola amigos , necesito insertar en base de datos unos checkbox estoy intentando hace mas de una semana y nada , intente hacer $_POST[checkbox] pero ...
  #1 (permalink)  
Antiguo 02/03/2009, 06:59
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Ayuda checkbox

Hola amigos , necesito insertar en base de datos unos checkbox estoy intentando hace mas de una semana y nada , intente hacer $_POST[checkbox] pero directamente ni mete el registro en la bd , no es un checkbox dinamico , son dos opciones para el envio de noticias con value 1 cada uno y simplemente lo que quiero hacer es si lo seleccionan se guarde 1 y sino se guarde 0 o NULL , funcionaria de las dos formas , les dejo mis checkbox:


Código html:
Ver original
  1. <b>Opciones:</b></font><br><label for="lock"><input type="checkbox" name="no_comm" id="no_comm" value="1" /> No permitir comentarios.</label><br /><label for="lock"><input type="checkbox" name="lock" id="lock" value="1" /> Solo usuarios registrados.</label>

PD: Como dije antes intente $_POST[lock] y no inserta.


PD: espero que me puedan ayudar , un abrazo
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #2 (permalink)  
Antiguo 02/03/2009, 07:36
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda checkbox

Trata hacer un var_dump() de la variable en la pagina que procesa el formulario.
  #3 (permalink)  
Antiguo 02/03/2009, 07:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda checkbox

obvio, solo se envía el value si se ha seleccionado, osea... que al no marcarlo, no se envía lock....

para lograr tu efecto, es sencillo
Código PHP:
$foo = isset($_POST['bar'])? ' 1 '' NULL ';
$sql "UPDATE tabla SET candy=$foo"
y ahí, tienes tu variable...

¿porque dices que no inserta???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 02/03/2009, 08:26
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Ayuda checkbox

Hola amigos , muchisimas gracias por responder, miren , no me inserta nada en el registro , les muestro mi procesar.php

Código PHP:
Ver original
  1. function limpiar_sql_mensaje($mensaje){
  2.     $mensaje = htmlentities($mensaje); // Evita introducción código HTML
  3.     if (get_magic_quotes_gpc()) $value = stripslashes($mensaje);
  4.     $mensaje = mysql_real_escape_string($mensaje);
  5.     return $mensaje;
  6. }  
  7.  
  8.  
  9.  
  10. function limpiar_sql_nombre($nombre){
  11.     $nombre = trim(htmlentities($nombre)); // Evita introducción código HTML
  12.     if (get_magic_quotes_gpc()) $nombre = stripslashes($nombre);
  13.     $nombre = mysql_real_escape_string($nombre);
  14.     return $nombre;
  15. }  
  16.  
  17.  
  18. function limpiar_sql_tags($tags){
  19.     $tags = trim(htmlentities($tags)); // Evita introducción código HTML
  20.     if (get_magic_quotes_gpc()) $tags = stripslashes($tags);
  21.     $tags = mysql_real_escape_string($tags);
  22.     return $tags;
  23. }  
  24.  
  25.  
  26. $foo = isset($_POST['lock'])? ' 1 ': ' NULL ';
  27.  
  28.  
  29. $loco = nl2br($mensaje);
  30.  
  31.  
  32. mysql_query("insert into posts (nombre, mensaje, fecha, nick, avatar, categoria, tags, id_usuario, lock) values ('$nombre','$loco', now(), '$_COOKIE[nick]', '$userinfo[avatar]', '$categoria', '$tags', '$_COOKIE[id]', '$foo')");





Espero qe podamos encontrar el problema , un abrazo
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #5 (permalink)  
Antiguo 02/03/2009, 09:16
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Ayuda checkbox

<H3>CHECKBOX</H3>
Extras:
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín
<HR> // en esta parte declaraas el check box en un array para q te tome los valores






H3>CHECKBOX</H3>
<?PHP
$n = count ($extras);
//for ($i=0; $i<$n; $i++)
//print ("$extras[$i]<BR>\n");
foreach ($_REQUEST['extras'] as $extra)
print ("$extra<BR>\n");
?>
<HR> //recibes tu variable
  #6 (permalink)  
Antiguo 02/03/2009, 09:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda checkbox

Agrega un or die(mysql_error()) para que veas porque no se inserta.

Saludos
  #7 (permalink)  
Antiguo 02/03/2009, 09:37
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Ayuda checkbox

es que no me da error ahora inserta todo , nombre , cuerpo , etc pero los checkbox quedan NULL :S
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #8 (permalink)  
Antiguo 02/03/2009, 09:48
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Ayuda checkbox

name="lock

es q no declaras tus check como array para q tee el value q kieras
name=[lock]
inteenta el ejemplo q te puse saludos
  #9 (permalink)  
Antiguo 02/03/2009, 09:50
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Ayuda checkbox

Hola tata009,

Intenta esto:

Código php:
Ver original
  1. $foo = ($_POST['lock'])?'1':'NULL';

Si tu campo "lock", es de tipo entero(int) quita las comillas simple en en el insert de la variable "$foo".

Código php:
Ver original
  1. mysql_query (....$foo);

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #10 (permalink)  
Antiguo 02/03/2009, 10:04
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
hola amigos , miren probe sacarle las comillas y nada :S , en cuanto al array no entiendo como hacerlo porque el value es siempre el mismo y son distintos , es value 1 el lock y value 1 el no_comm , y siempre es igual deberia funcionar no entiendo porque mete todo el registro pero eestos campos quedan en NULL :S

amigs , probe haciendo un IF(!empty($_POST[lock]) { $foo = "1"; } else { $foo = "0"; }

echo $foo;


exit;


y funciona bien es decir si lo elijo me muestra 1 y sino 0 pero despues no lo registra , no registra nada en la noticia les dejo mi consulta
:

Código PHP:
Ver original
  1. if(!empty($_POST['lock'])) { $foo = "1"; } else {$foo = "0"; }
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8. $loco = nl2br($mensaje);
  9.  
  10.  
  11. mysql_query("insert into posts (nombre, mensaje, fecha, nick, avatar, categoria, lock, tags, id_usuario) values ('$nombre','$loco', now(), '$_COOKIE[nick]', '$userinfo[avatar]', '$categoria', '$foo', '$tags', '$_COOKIE[id]')");
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos

Última edición por GatorV; 02/03/2009 a las 10:19
  #11 (permalink)  
Antiguo 02/03/2009, 10:15
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Ayuda checkbox

<INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina


tienen el mismo nombre pero diferentee value
por eso lo pones con el array
  #12 (permalink)  
Antiguo 02/03/2009, 10:22
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Ayuda checkbox

obtengo el mismo resultado , por ejemplo marco la casilla lock , le presiono enviar , me muestra que se inserto y el numero 1 (del print) , pero no inserta nada :S :

Código PHP:
Ver original
  1. $opc = $_POST[opc];
  2.  
  3.  
  4. $n = count ($extras);
  5. //for ($i=0; $i<$n; $i++)
  6. //print ("$opc[$i]<BR>\n");
  7. foreach ($_REQUEST['opc'] as $opc)
  8. print ("$opc<BR>\n");
  9.  
  10.  
  11.  
  12.  
  13. $loco = nl2br($mensaje);
  14.  
  15.  
  16. mysql_query("insert into posts (nombre, mensaje, fecha, nick, avatar, categoria, tags, id_usuario, lock) values ('$nombre','$loco', now(), '$_COOKIE[nick]', '$userinfo[avatar]', '$categoria', '$tags', '$_COOKIE[id]', '$opc')");
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #13 (permalink)  
Antiguo 02/03/2009, 10:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda checkbox

Como te comento agrega el or die( mysql_error() ) para que veas que problema puede ser.

Saludos
  #14 (permalink)  
Antiguo 02/03/2009, 10:43
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
me da este error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lock) values ('adasda','aasdasdasd', now(), 'tata009', 'http://cjbsfoto.files.wo' at line 1

ya esta muchachos , nose le cambie el nombre a la tabla se ve que lock no esta permitido como nombre para una tabla o algo asi , un abrazo a todos por ayudar :D
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos

Última edición por GatorV; 02/03/2009 a las 10:56
  #15 (permalink)  
Antiguo 02/03/2009, 10:52
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Ayuda checkbox

Hola tata009...

No quiero parecer pesado, pero si por cada error que te arroja el sistema recurres al foro pues te demorarás mas de lo que quizás logres por ti misma, dale, un poco mas de esfuerzo.

El problema es que tu query no está sintácticamente bien formado, mysql te arrojará el error hasta que lo "arregles".

Saludos

PDt: Me alegra que lo hayas solucionado...
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com

Última edición por Carxl; 02/03/2009 a las 10:54 Razón: Cuando posteé lo había solucionado ya...
  #16 (permalink)  
Antiguo 02/03/2009, 10:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda checkbox

O en dado caso si vas a usar nombres reservados usa `lock` para especificar que es un nombre.

Adicionalmente a lo que te dice Carxl ya te habia comentado desde el mensaje 6 que agregaras el or die() para ver el error.

Saludos
  #17 (permalink)  
Antiguo 02/03/2009, 10:57
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Ayuda checkbox

jej esta bien , lo que pasa es que hacia un mes que lo estaba haciendo y no me salia , ah jaja che soy hombre :) , un abrazo
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #18 (permalink)  
Antiguo 02/03/2009, 11:01
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Ayuda checkbox

Cita:
Iniciado por tata009 Ver Mensaje
che soy hombre :) , un abrazo


Heee me engañó tu nick Lo siento...

Saludos de nuevo
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #19 (permalink)  
Antiguo 02/03/2009, 13:57
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda checkbox

Código PHP:
function limpiar_sql_mensaje($mensaje){
    
$mensaje htmlentities($mensaje); // Evita introducción código HTML
    
if (get_magic_quotes_gpc()) $value stripslashes($mensaje);
    
$mensaje mysql_real_escape_string($mensaje);
    return 
$mensaje;
}  
 
 
 
function 
limpiar_sql_nombre($nombre){
    
$nombre trim(htmlentities($nombre)); // Evita introducción código HTML
    
if (get_magic_quotes_gpc()) $nombre stripslashes($nombre);
    
$nombre mysql_real_escape_string($nombre);
    return 
$nombre;
}  
 
 
function 
limpiar_sql_tags($tags){
    
$tags trim(htmlentities($tags)); // Evita introducción código HTML
    
if (get_magic_quotes_gpc()) $tags stripslashes($tags);
    
$tags mysql_real_escape_string($tags);
    return 
$tags;

Si las funciones hacen lo mismo, ¿para que tener 3?
  #20 (permalink)  
Antiguo 02/03/2009, 14:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda checkbox



Cita:
Iniciado por Ronruby Ver Mensaje
[...] Si las funciones hacen lo mismo, ¿para que tener 3?
exactamente, que tontería....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 07:38.