Foros del Web » Programando para Internet » PHP »

Insertar en BD datos de checkbox NO seleccionados?

Estas en el tema de Insertar en BD datos de checkbox NO seleccionados? en el foro de PHP en Foros del Web. Buenas, tengo unos checkbox que genero con este codigo Código PHP: <?php              $sql  =  "SELECT * FROM foros order by id asc" ;              $query  =  mysql_query ( $sql );             while ( $row ...
  #1 (permalink)  
Antiguo 13/03/2009, 08:03
 
Fecha de Ingreso: mayo-2008
Ubicación: En algun lado!
Mensajes: 86
Antigüedad: 16 años
Puntos: 1
Insertar en BD datos de checkbox NO seleccionados?

Buenas, tengo unos checkbox que genero con este codigo

Código PHP:
<?php 
            $sql 
"SELECT * FROM foros order by id asc";
            
$query mysql_query($sql);
            while (
$row=mysql_fetch_array($query)) 
            { echo 
'<input type="checkbox" name="foro[]" value="y">'$row["foro"].'&nbsp;&nbsp;&nbsp;'; } ?>
Y queria saber de que modo hago para insertar en la base de datos todos los checkbox, esten marcados todos, ninguno, solo 2, etc. (si esta marcado inserta "y", si esta desmarcado inserta "n")

Encontre en otros temas esto

Código PHP:
(isset($_POST['foro']))   ? 'y' 'n'
pero la verdad que no se como adaptarlo... Hay que meterlo en un foreach??

Agradezco cualquier ayuda!

Saludos!
  #2 (permalink)  
Antiguo 13/03/2009, 08:38
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Insertar en BD datos de checkbox NO seleccionados?

Hola malcomax

Cuando generás los checkbox guardá el id del foro en el campo value para poder identificarlos, luego cuando envies el formulario solo van a pasar por $_POST los checkbox que esten seleccionados, entonces para igresarlos a la db tenés que volver a hacer una consulta a la base de datos, recorrer los resultados y preguntar en cada vuela:
Código php:
Ver original
  1. if(isset($_POST['foro'][$row['id'])
  2. {
  3.      // Aca haces un insert con el valor 'y'
  4. }else{
  5.      // De lo contrario lo haces con el valor 'n'
  6. }

Espero haberte ayudado, un saludo.
  #3 (permalink)  
Antiguo 13/03/2009, 09:16
 
Fecha de Ingreso: mayo-2008
Ubicación: En algun lado!
Mensajes: 86
Antigüedad: 16 años
Puntos: 1
Respuesta: Insertar en BD datos de checkbox NO seleccionados?

Gracias lisandro Arg por la respuesta.

Mira yo necesito que se guarden todos los checkbox, es decir, los tildados y los no tildados.

Ese codigo que me pusiste vos hace eso o solamente guarda los tildados y en el caso de que no haya ninguno tildado recien guarda los no tildados?
  #4 (permalink)  
Antiguo 13/03/2009, 09:25
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Insertar en BD datos de checkbox NO seleccionados?

Ese codigo lo tenés que poner dentro de un while igual al que tenes para mostra los checkbox, o sea que vas a recorrer TODOS los foros y con el código que te puse solo vas a evaluar si ha sido tildado o no para ver que valor poner en el insert (un insert por vuelta del while, un insert por foro que tengas). Si no hay ninguno marcado va a recorrer todos y se va a ir por el else del codigo q te puse.
  #5 (permalink)  
Antiguo 13/03/2009, 09:51
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Insertar en BD datos de checkbox NO seleccionados?

Perdon, cometí un error en la evaluación de los checkbox enviados
Mejor verificalos de esta forma:
Código PHP:
Ver original
  1. if(in_array($row['id'],$_POST['foro']))

Intentá armar el código y pegalo acá envualto en unas etiqueas HIGHLIGTH=PHP (el boton "#" y en la ventana emergente "PHP")
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:50.