Foros del Web » Programando para Internet » PHP »

PHP OO Llevar datos de Mysql a un checkbox

Estas en el tema de Llevar datos de Mysql a un checkbox en el foro de PHP en Foros del Web. Hola mi pregunta es la siguiente espero me puedan ayudar: Tengo una BD con ciertos campos en donde los valores son 0 y 1 dependiendo ...
  #1 (permalink)  
Antiguo 31/03/2014, 16:09
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Pregunta Llevar datos de Mysql a un checkbox

Hola mi pregunta es la siguiente espero me puedan ayudar:

Tengo una BD con ciertos campos en donde los valores son 0 y 1 dependiendo del tipo de usuario y de privilegios que se le pueden dar.

Estoy armando una página con varios checkbox para que depende de que usuario se le agreguen o se le quiten ciertos elementos seleccionados.

Mi pregunta es: ¿Hay alguna forma de poder llamar los datos que están en la tabla de mi BD y que se activen en los checkbox para saber cuales están prendidos y cuales no?

¿Y hay alguna forma (código php) de poder hacer el cambio si algunos están seleccionados y se les quita la selección y poder cambiar los datos?

Supongo que utilizo un update y un delete para poder hacer eso pero quiero saber si se pueden insertar los dos tipos de instrucciones ó tengo que hacer una página por cada uno.

Gracias por la ayuda y espero sus respuestas!
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #2 (permalink)  
Antiguo 31/03/2014, 16:41
 
Fecha de Ingreso: diciembre-2009
Mensajes: 15
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Llevar datos de Mysql a un checkbox

La pregunta resulta un poco confusa, y la respuesta es sí, hay formas de hacer que los "checkbox" estén todos en una misma página.
Si lo que quieres saber es el algoritmo a seguir (que supongo que es lo que quieres), lo que debes de hacer es iterar sobre esos elementos para crear un formulario con html, por ejemplo, y darles el atrubuto "checked" a los campos que estén activados. Una vez el usuario envie su formulario, ya te encargarías de filtrar y actualizar los datos.
Sin embargo, tienes que entender que los valores que quieres manejar son de tipo boleano, no deberías usar "ceros y unos", le daría más lógica a lo que pretendes.
  #3 (permalink)  
Antiguo 31/03/2014, 16:43
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: Llevar datos de Mysql a un checkbox

Ps es cuestion de que juegues un poco con tus datos.
No se como tienes el codigo pero te dare la dire la idea para que la apliques como desees! =)

Los checkbox tiene un atributo llamado "checked" el cual te permite marcarlos en el momento de la carga.


Código HTML:
Ver original
  1. <input type="checkbox" name="permisos" value="ver">Para Ver <br>
  2. <input type="checkbox" name="permisos" value="entrar" checked>Para Entrar<br>
  3. <!-- el checkbox "entrar" se cargara ya seleccionado -->

Entonces lo que puedes hacer es traerte tus datos de la BD, y segun el permiso imprimir eso en tu checkbox...

Código PHP:
Ver original
  1. if($permisoVer = 1){
  2. $checkedVer = 'checked'; //si no sirve checked solo usa checked="checked"
  3. }
  4. else{
  5. $checkedVer = '';
  6. }

y lo imprimes en tu checkbox

Código PHP:
Ver original
  1. <input type="checkbox" name="permisos" value="entrar" <?php echo $checkedVer; ?>>
  2. Para Entrar<br>

Espero te funcione! =)
__________________
Ayudar a otros, es una de las mejores formas de aprender y ayudarse a si mismo! =)

>[Jheck]<
  #4 (permalink)  
Antiguo 31/03/2014, 16:44
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Llevar datos de Mysql a un checkbox

Mira para que pueda ser un poco más claro el asunto:

Tengo una pagina de Loggin y tengo dos tipos de usuarios "Admin" y "Usuario normal" pero lo que quiero es darles privilegios en cuanto a ver un menú o un panel de control o ciertos elementos de una página principal, para ello quiero darles un valor para que verifique que tipo de elementos puede ver cada usuario
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #5 (permalink)  
Antiguo 31/03/2014, 16:46
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Llevar datos de Mysql a un checkbox

Gracias jheckson algo mas o menos es lo que quiero, llamar los datos que están en mi BD y que cuando llame a la tabla pues los checkbox se activen o no dependiendo de los valores que contenga dicha tabla
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #6 (permalink)  
Antiguo 31/03/2014, 17:19
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Llevar datos de Mysql a un checkbox

Cita:
Iniciado por jheckson Ver Mensaje
Ps es cuestion de que juegues un poco con tus datos.
No se como tienes el codigo pero te dare la dire la idea para que la apliques como desees! =)

Los checkbox tiene un atributo llamado "checked" el cual te permite marcarlos en el momento de la carga.


Código HTML:
Ver original
  1. <input type="checkbox" name="permisos" value="ver">Para Ver <br>
  2. <input type="checkbox" name="permisos" value="entrar" checked>Para Entrar<br>
  3. <!-- el checkbox "entrar" se cargara ya seleccionado -->

Entonces lo que puedes hacer es traerte tus datos de la BD, y segun el permiso imprimir eso en tu checkbox...

Código PHP:
Ver original
  1. if($permisoVer = 1){
  2. $checkedVer = 'checked'; //si no sirve checked solo usa checked="checked"
  3. }
  4. else{
  5. $checkedVer = '';
  6. }

y lo imprimes en tu checkbox

Código PHP:
Ver original
  1. <input type="checkbox" name="permisos" value="entrar" <?php echo $checkedVer; ?>>
  2. Para Entrar<br>

Espero te funcione! =)


Ok más o menos entiendo tu idea pero el acomodo de cada uno es lo que me hizo dudar... primero mandas los checkbox o mandas la sentencia SQL para que se llenen

Gracias por tu aporte y estaré posteando mi código y espero pueda seguir contando con tu ayuda!!!!
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #7 (permalink)  
Antiguo 31/03/2014, 17:29
 
Fecha de Ingreso: diciembre-2009
Mensajes: 15
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Llevar datos de Mysql a un checkbox

Cita:
Iniciado por Landa11 Ver Mensaje
Ok más o menos entiendo tu idea pero el acomodo de cada uno es lo que me hizo dudar... primero mandas los checkbox o mandas la sentencia SQL para que se llenen

Gracias por tu aporte y estaré posteando mi código y espero pueda seguir contando con tu ayuda!!!!
El orden debería ser:
  1. consultar base de datos
  2. filtrar los checkbox
  3. crear formulario con los checkbox
  4. enviar al usuario

Y para modificar:
  1. recibir formulario y filtrarlo
  2. crear consulta para la BD
  3. ejecutar consulta
  #8 (permalink)  
Antiguo 31/03/2014, 17:33
 
Fecha de Ingreso: diciembre-2009
Mensajes: 15
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Llevar datos de Mysql a un checkbox

Corrijo error de lógica:

Cita:
Iniciado por jheckson Ver Mensaje
Ps es cuestion de que juegues un poco con tus datos.

...

Código PHP:
Ver original
  1. //if($permisoVer = 1){ Error de lógica, siempre será true mejor usar
  2. //if ($permisoVer) así siempre que sea distinto de cero, false o null será verdadero o usar
  3. if ($permisoVer == 1)
  4. // Según el estándar HTML5 con usar "checked" es suficiente, son válidos también 'checked="checked"' ó 'checked="true"'
  5. $checkedVer = 'checked'; //si no sirve checked solo usa checked="checked"
  6. }
  7. else{
  8. $checkedVer = '';
  9. }
  #9 (permalink)  
Antiguo 31/03/2014, 17:37
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Llevar datos de Mysql a un checkbox

Muchas gracias por el dato 814ckf0x lo voy a analizar muy bien para poder empezar esa parte que hace falta.

Gracias por las atenciones!!!!!
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #10 (permalink)  
Antiguo 31/03/2014, 18:03
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: Llevar datos de Mysql a un checkbox

Gracias por la correcion 814ckf0x, realmente no me fije al escribirlo! =)
En cuanto del Checked, me ha pasado que no ha funcionado solamente la palabra, aunque con los selects (selected) por eso di esa nota!

Y la logica que 814ckf0x es correcta!
__________________
Ayudar a otros, es una de las mejores formas de aprender y ayudarse a si mismo! =)

>[Jheck]<
  #11 (permalink)  
Antiguo 01/04/2014, 02:08
Avatar de supercoco79  
Fecha de Ingreso: octubre-2012
Ubicación: Islas Canarias
Mensajes: 115
Antigüedad: 11 años, 6 meses
Puntos: 35
Respuesta: Llevar datos de Mysql a un checkbox

Para ahorrar líneas, hago mi pequeñísima aportación a la parte de php:

Código PHP:
$checkedVer = ($permisoVer)?'checked':''
Así es mucho más elegante y ahorras líneas y bloques.

Saludos.
__________________
Yesterday was the only easy day. Deportes de aventura
  #12 (permalink)  
Antiguo 01/04/2014, 13:55
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Llevar datos de Mysql a un checkbox

Código HTML:
Ver original
  1. <!doctype html>
  2. <body topmargin="0">
  3. <table align="right" width="350px" border="0">
  4. <tr>
  5. <td width="100px" align="right">Bienvenido <b><?php session_start(); echo ''.$_SESSION['user']; ?></b></td>
  6. <td width="15px" align="center">
  7. <a href="terminado.php">Cerrar Sesion</a>
  8. </td>
  9. </tr>
  10. <meta charset="utf-8">
  11. </head>
  12.  
  13. <br />
  14. <br />
  15. <br />
  16. <form action="control-usuario.php" method="post">
  17. <input type="checkbox" name="permisos" value="ver">Para ver<br>
  18. <input type="checkbox" name="permisos" value="entrar" checked>Para Entrar<br>
  19.  
  20. <?php
  21. $con = mysql_connect("localhost", "root", "");
  22. if (! $con)
  23. {
  24.    die ("ERROR EN LA CONEXION CON MYSQL: ".mysql_error());
  25. }
  26.  
  27. $base = mysql_select_db("almacenaje",$con);
  28. if(! $base)
  29. {
  30.    die ("ERROR AL CONECTAR CON LA BASE DE DATOS: ".mysql_error());
  31.        
  32. }
  33. require_once('funciones.php');
  34. conectar('localhost','root','','almacenaje');
  35. $user = strip_tags($_POST['user']);
  36. if($permisoVer == 1)
  37. {
  38.     $checkedVer = 'checked';
  39. }
  40. else
  41. {
  42.     $checkedVer = '';
  43. }
  44. ?>
  45. </form>
  46. </body>
  47. </html>


Algo más o menos es así a lo que me comentaban el día de ayer, no es así? Lo que si me queda la duda es que:

1. Indicar a que Usuario se le agregarán los cambios (no hay tanto problema)

2.Si adentro del formulario se van poniendo las casillas para habilitar o deshabilitar las funciones y en otra página sólo se recojen los valores y se guardan en la BD no es así?

Gracias por la ayuda.
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #13 (permalink)  
Antiguo 01/04/2014, 14:23
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: Llevar datos de Mysql a un checkbox

Hay un problema, no veo donde relacionas la base de datos, la logica de si debe estar chekeado o no el campo, y la impresion de la misma sobre el campo!

Tienes todo asilado y asi no funcionara.

Tienes que traer de la base de datos los permisos que ya tiene o si no tiene ninguno. (Depende como tengas guardado esto en la base de datos dependera parte de tu logica).

Segun el permiso que tenga, creas una variable "asociada" a ese tipo de permiso y que tendra un valor 'checked' y la misma la vas a imprimir dentro del input checkbox correspondiente a dicho permiso.

Asi por ejemplo:

<input type="checkbox" name="permisos" value="entrar" <?php echo $permisoEntrar; ?>>Entrar<br>

Asi si tiene permiso colocara en el html la palabra checked o si no lo tiene lo dejara normal y no se autoseleccionara el checkbox!
__________________
Ayudar a otros, es una de las mejores formas de aprender y ayudarse a si mismo! =)

>[Jheck]<
  #14 (permalink)  
Antiguo 01/04/2014, 15:03
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Llevar datos de Mysql a un checkbox

Apenas voy empezando a armarlo aunque sigo confundido pues he visto poco de PHP y hay varias cosas que no conozco jejeje disculpen si no le hayo la forma.

Seguiré contruyendo la página para ver que tal queda, por el momento voy a ver si puedo activar/desactivar una casilla con un dato de mi tabla en la BD.
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #15 (permalink)  
Antiguo 02/04/2014, 13:17
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Llevar datos de Mysql a un checkbox

No puedo postear lo que llevo de código, sólo necesito saber si estoy haciendo bien el acomodo y una duda al utilizar unos checkbox para seleccionar algunos campos
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!
  #16 (permalink)  
Antiguo 02/04/2014, 13:19
Avatar de Landa11  
Fecha de Ingreso: febrero-2014
Ubicación: En algún lugar de mi oficina
Mensajes: 148
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Llevar datos de Mysql a un checkbox

Código PHP:
Ver original
  1. [B][B]Una duda: Tengo ya esto para llamar a la tabla y los elementos y mandarlos a pantalla para su cambio y que se registren de nuevo en el cambio.
  2.  
  3. Pero mi duda es en el acomodo pues quiero poner arriba los textbox y abajo de cada uno su checkbox y además la sentencia para que tome los valores que se cambiaron y que se seleccionaron.
  4. [/B]
  5. Espero me puedan ayudar y gracias de antemano[/B] :arriba:
  6.  
  7. [HIGHLIGHT="PHP"]<?php
  8. $con = mysql_connect("localhost", "root", "");
  9. if (! $con)
  10. {
  11.     die ("ERROR EN LA CONEXION CON MYSQL: ".mysql_error());
  12. }
  13.  
  14. $base = mysql_select_db("almacenaje",$con);
  15. if(! $base)
  16. {
  17.     die ("ERROR AL CONECTAR CON LA BASE DE DATOS: ".mysql_error());
  18.        
  19. }
  20.  
  21. $consulta = "SELECT iduser, user, menu_princ, panel, insertar_user, consulta_user, modifica_user, permisos_user FROM datos WHERE idUser='".$_POST['iduser']."'";
  22. $resultado = mysql_query($consulta);
  23. if(!$resultado)
  24. {
  25.     echo 'La consulta SQL contiene errores, '.mysql_error();
  26.     exit();
  27. }
  28. else
  29. {
  30. echo "<html><body><br />
  31.         <center><h1>Consulta de Control de Usuario</h1></center>
  32.         <center><form name='ejecuta' method='post' action='control-final.php'>
  33.             <table>
  34.                 <tr><td>ID</td><td>Nombre Usuario</td>
  35.                 <td>Menu Principal</td><td>Panel de Control</td>
  36.                 <td>Insertar Usuario</td><td>Consultar Usuario</td>
  37.                 <td>Modificar Usuario</td><td>Permisos de usuario</td>
  38.                 <td>Modificar Menu Principal</td><td>Modificar Panel de Control</td>
  39.                 <td>Modificar Insertar Usuario</td><td>Modificar Consultar Usuario</td>
  40.                 <td>Modificar Modifica Usuario</td><td>Modificar Permiso Usuario</td>
  41.                 </tr>";
  42. $i = 0 ;
  43. while ($row = mysql_fetch_row($resultado)){
  44.             echo "<tr><td><input type='hidden' name='iduser[$i]' value='".$row[0]."' />".$row[0]."</td>
  45.                       <td><input type='text' name='user[$i]' value='".$row[1]."'/></td>
  46.                       <td><input type='text' name='menu_princ[$i]' value='".$row[2]."'/></td>
  47.                       <td><input type='text' name='panel[$i]' value='".$row[3]."'/></td>
  48.                       <td><input type='text' name='insertar_user[$i]' value='".$row[4]."'/></td>
  49.                       <td><input type='text' name='consultar_user[$i]' value='".$row[5]."'/></td>
  50.                       <td><input type='text' name='modifica_user[$i]' value='".$row[6]."'/></td>
  51.                       <td><input type='text' name='permisos_user[$i]' value='".$row[7]."'/></td>       
  52.                       <td><input type='checkbox' name='seleccion[$i]' value='modmenu'".$row[2]."'/></td><!-- Esta línea es para saber si se modifica -->
  53.                       <td><input type='checkbox' name='seleccion[$i]' value='modpanel'".$row[3]."'/></td>
  54.                       <td><input type='checkbox' name='seleccion[$i]' value='modinsert'".$row[4]."'/></td>
  55.                       <td><input type='checkbox' name='seleccion[$i]' value='modcons'".$row[5]."'/></td>
  56.                       <td><input type='checkbox' name='seleccion[$i]' value='modmuser'".$row[6]."'/></td>
  57.                       <td><input type='checkbox' name='seleccion[$i]' value='modpermisos'".$row[7]."'/></td>
  58.                       </tr></center>";$i++;
  59. }
  60. echo "</table><br /><input type='submit' value='Enviar'></form></body></html>";
  61. }
  62. ?>
[/HIGHLIGHT]
__________________
Ayudando a la gente con nuestros códigos para poder tener el conocimiento adecuado y ser libres!

Etiquetas: checkbox, delete, html, mysql+php, update
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 20:00.