Foros del Web » Programando para Internet » PHP »

Agregar a mysql datos de varios checkbox por medio de php

Estas en el tema de Agregar a mysql datos de varios checkbox por medio de php en el foro de PHP en Foros del Web. Hola amigos, tengo un problemilla que quisiera me ayudaran a resolver. Necesito introducir los datos de unos checkbox a la base de datos (se como ...
  #1 (permalink)  
Antiguo 21/03/2014, 18:45
 
Fecha de Ingreso: marzo-2014
Mensajes: 95
Antigüedad: 10 años, 1 mes
Puntos: 0
Agregar a mysql datos de varios checkbox por medio de php

Hola amigos, tengo un problemilla que quisiera me ayudaran a resolver.
Necesito introducir los datos de unos checkbox a la base de datos (se como hacerlo normalmente) pero como el usuario puede seleccionar mas de uno necesito que se agreguen solo las opciones que selecciono el punto es que solo me agrega el que yo le ponga.

Aca les dejo el codigo (me explique lo mas que pude)

Código PHP:
$nombre $_GET['elusuario'];
$estatus $_GET['elestatus'];
foreach(
$_GET['checaru'] as $arreglo1){}
 foreach(
$_GET['checarf'] as $arreglo2){}
  foreach(
$_GET['checarte'] as $arreglo3){}
foreach(
$_GET['checarc'] as $arreglo4){}
 foreach(
$_GET['checarr'] as $arreglo5){}
  foreach(
$_GET['checart'] as $arreglo6){}

$query = ("INSERT INTO usuarios (id_usuario, usuario, estatus, permisos) VALUES (null, '$nombre', '$estatus', '$arregloX');");
     
     
$resultado mysql_query($query);       
     
if (!
$resultado) {
  echo 
'Error al ejecutar la consulta';
}
else {
echo 
"<script> document.location ='../users.php'</script>";

  #2 (permalink)  
Antiguo 21/03/2014, 18:48
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

con isset puedes saber si la variable del check esta seteada

if(isset($primerCheck))





bye,
  #3 (permalink)  
Antiguo 21/03/2014, 18:53
 
Fecha de Ingreso: marzo-2014
Mensajes: 95
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

si todo eso lo se de hecho se como agregar el valor de las variables, lo que no quiero es hacer muchos ciclos "if" para optimizar codigo.
  #4 (permalink)  
Antiguo 21/03/2014, 18:59
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

ciclos "if"


xD y que es esto...


foreach($_GET['checaru'] as $arreglo1){}
foreach($_GET['checarf'] as $arreglo2){}
foreach($_GET['checarte'] as $arreglo3){}
foreach($_GET['checarc'] as $arreglo4){}
foreach($_GET['checarr'] as $arreglo5){}
foreach($_GET['checart'] as $arreglo6){}
  #5 (permalink)  
Antiguo 21/03/2014, 19:02
 
Fecha de Ingreso: marzo-2014
Mensajes: 95
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

Cita:
Iniciado por __SDP__ Ver Mensaje
ciclos "if"


xD y que es esto...


foreach($_GET['checaru'] as $arreglo1){}
foreach($_GET['checarf'] as $arreglo2){}
foreach($_GET['checarte'] as $arreglo3){}
foreach($_GET['checarc'] as $arreglo4){}
foreach($_GET['checarr'] as $arreglo5){}
foreach($_GET['checart'] as $arreglo6){}
Aqui es donde recibo mis valores de mi formulario.
  #6 (permalink)  
Antiguo 21/03/2014, 19:11
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

deja todos los checkboxes con el mismo nombre, eso queda como arreglo


y recorres el arreglo y eso es todo.
  #7 (permalink)  
Antiguo 21/03/2014, 19:24
 
Fecha de Ingreso: abril-2013
Ubicación: venezuela
Mensajes: 92
Antigüedad: 11 años
Puntos: 1
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

ejemplo:

este seria el formulario con los checkbox, los nombres todos iguales pero son arreglos por eso "nombre[]" y los valores diferente

Código HTML:
Ver original
  1. <form method="post" acton="">
  2.     <input type="checkbox"  name="nombre[]" value="1" />
  3.     <input type="checkbox"  name="nombre[]" value="2" />
  4.     <input type="checkbox"  name="nombre[]" value="3" />
  5.     <input type="checkbox"  name="nombre[]" value="4" />
  6.     <input type="submit" value="Enviar" />
  7. </form>

y luego realizas los foreach....
__________________
"Para el logro del triunfo es necesario pasar por las sendas de los sacrificios"
  #8 (permalink)  
Antiguo 21/03/2014, 19:30
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

eso mismo decia yo, revisa esto

Código PHP:
Ver original
  1. <?php
  2.     print_r($_POST)
  3. ?>
  4. <html>
  5. <head>
  6.     <title>...</title>
  7.  
  8. </head>
  9. <body>
  10.  
  11. <form action="" method="post">
  12.     <input type="checkbox" name="chkname[]" value="1">1111</input>
  13.     <input type="checkbox" name="chkname[]" value="2">2222</input>
  14.     <input type="checkbox" name="chkname[]" value="3">3333</input>
  15.     <input type="checkbox" name="chkname[]" value="4">4444</input>
  16.     <input type="checkbox" name="chkname[]" value="5">5555</input>
  17.     <br>
  18.     <input type="submit" value="enviar">
  19. </form>
  20.  
  21. </body>
  22. </html>


devuelve esto

si presiono como ejemplo el check 1111 y el 3333,
me devuelve los indices de los check que estan activados


Array ( [chkname] => Array ( [0] => 1 [1] => 3 ) )


bye.
  #9 (permalink)  
Antiguo 22/03/2014, 08:45
 
Fecha de Ingreso: marzo-2014
Mensajes: 95
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

Algo así ya lo tenia pero cuando recibía el valor solo se recibía el ultimo checkbox seleccionado osea 1.
y es lo que no entiendo por que recibía solo el ultimo valor.
  #10 (permalink)  
Antiguo 22/03/2014, 09:43
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

Porque el name debes tratarlo como array asi

name="chkname[]"

no asi

name="chkname"
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #11 (permalink)  
Antiguo 22/03/2014, 10:38
 
Fecha de Ingreso: marzo-2014
Mensajes: 95
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

si asi es como lo tengo mira:

check[0].id = "checktod";
check[0].name = "checart[]";
check[0].value = "Todos";
check[1].id = "checkus";
check[1].name = "checaru[]";
check[1].value = "Usuarios";
check[2].id = "checkfin";
check[2].name = "checarf[]";
check[2].value = "Finanzas";
check[3].id = "checktes";
check[3].name = "checarte[]";
check[3].value = "Tesoreria";
check[4].id = "checkcred";
check[4].name = "checarc[]";
check[4].value = "Creditos";
check[5].id = "checkries";
check[5].name = "checarr[]";
check[5].value = "Riesgos";
  #12 (permalink)  
Antiguo 22/03/2014, 12:36
 
Fecha de Ingreso: marzo-2014
Mensajes: 95
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

¡¡ Ya lo resolví !!
y se los dejo por si alguien se encuentra en el mismo asunto.
Código PHP:
Ver original
  1. $cadenas = "";
  2.  
  3. $nombre = $_GET['elusuario'];
  4. $estatus = $_GET['elestatus'];
  5. foreach($_GET['checaru'] as $arreglo1){}
  6.  foreach($_GET['checarf'] as $arreglo2){}
  7.   foreach($_GET['checarte'] as $arreglo3){}
  8. foreach($_GET['checarc'] as $arreglo4){}
  9.  foreach($_GET['checarr'] as $arreglo5){}
  10.   foreach($_GET['checart'] as $arreglo6){}
  11.  
  12.     $arreglo = array (
  13.                     1 => "$arreglo1",
  14.                     2 => "$arreglo2",
  15.                     3 => "$arreglo3",
  16.                     4 => "$arreglo4",
  17.                     5 => "$arreglo5",
  18.                     6 => "$arreglo6",
  19.     );  
  20. foreach($arreglo as &$arregloz){
  21. //echo "<script> alert ('$arregloz'); </script>";
  22.         if($arregloz != null){
  23.         $cadenas = $cadenas. " " .$arregloz;
  24.        
  25.         }
  26.         }
  27.         $query = ("INSERT INTO usuarios (id_usuario, usuario, estatus, permisos) VALUES (null, '$nombre', '$estatus', '$cadenas');");
  28.      
  29.      $resultado = mysql_query($query);  
  30.      
  31.    if (!$resultado) {
  32.   echo 'Error al ejecutar la consulta';
  33.   }
  34.    else {
  35. echo "<script> document.location ='../users.php'</script>";
  36.       }
  #13 (permalink)  
Antiguo 22/03/2014, 14:55
 
Fecha de Ingreso: diciembre-2012
Mensajes: 69
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

Hola puede que si funcione lo que usas pero hay cosas que no necesitas, recuerda no repetir lo mismo , esto es un solo Ciclo.
En el mismo cilo pudes usarlo para las demás variables que mandes solo asignas la posicion del arreglo.


Código PHP:
Ver original
  1. /*
  2.     1.- Si le mandas estos inputs
  3.         type="checked" value="1" name="datos_check_box[]" checked
  4.         type="checked" value="2" name="datos_check_box[]" --
  5.         type="checked" value="3" name="datos_check_box[]" checked
  6.         type="checked" value="4" name="datos_check_box[]" checked
  7.         type="checked" value="5" name="datos_check_box[]" checked
  8.         type="checked" value="6" name="datos_check_box[]" --
  9.     2.- Solo recibe los que tienen ckecked entonces son solo 4 capturados,
  10.     si esos 4 capturados cuentan con algun valor en especifico es decir un IDENTIFICADOR se lo asignas al value.
  11.     entonces mandas los mismos id con otro input, este puede estar oculto
  12.         type="hidden" value="1" name="permisos_id[]"
  13.         type="hidden" value="2" name="permisos_id[]"  
  14.         type="hidden" value="3" name="permisos_id[]"
  15.         type="hidden" value="4" name="permisos_id[]"
  16.         type="hidden" value="5" name="permisos_id[]"
  17.         type="hidden" value="6" name="permisos_id[]"  
  18.     3.- entonces solo queda recorrer todos los campos hidden como si todos hubieran sido seleccionados (checked's)
  19.     */
  20.  
  21.     $arreglo_checked    = $_GET['datos_check_box'];
  22.     $arreglo_permisos   = $_GET['permisos_id'];
  23.     $cadena_permisos    = "";
  24.     foreach ($arreglo_permisos as $posicion => $permisos_id) {
  25.         if(!in_array($permisos_id,$arreglo_checked))    {   continue;   }
  26.  
  27.         $cadena_permisos.="|$permisos_id";
  28.     }
  29.    
  30.     $id_usuario = $nombre = $estatus = 0;
  31.    
  32.     $sql_permisos =" INSERT INTO usuarios SET id_usuario='$id_usuario',
  33.        usuario='$nombre',
  34.        estatus='$estatus',
  35.        cadenas='$cadena_permisos'";
  36.  
  37.     mysql_query($sql_permisos) or die("No se pudo Insertar [$sql_permisos]");

Ultima cosa, las variables usa nombre mas abstractos de lo contrario el día de mañana te dolerá la cabeza tratando de "entender algo que no deberías de buscar"

Saludos!
  #14 (permalink)  
Antiguo 24/03/2014, 08:42
 
Fecha de Ingreso: marzo-2014
Mensajes: 95
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Agregar a mysql datos de varios checkbox por medio de php

Muchisimas gracias por tu aporte la verdad esta muy bien el codigo que pusiste y claro de entender de nuevo GRACIAS.

Etiquetas: checkbox, medio, mysql, usuarios
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 00:48.