Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/06/2014, 11:27
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 3 meses
Puntos: 977
Respuesta: checkbox checked por materia de alumno

Del modo en que lo haces, solo se imprimirán los datos que existan en la base de datos, por lo que todos tendrían que estar marcados. Lo que puedes hacer es tener una lista con los nombres de cada materia, imprimir tantos checkbox como materias hayan y las materias que se guardaron en la base de datos, tenlas en un array aparte. Luego, al momento de imprimir los checkbox, verifica si el valor que le asignas al checkbox se encuentra en el array de las materias previamente guardadas, de ser así, marcas el checkbox.

Código PHP:
Ver original
  1. <?php
  2. $lista = array('Materia1', 'Materia2', 'Materia3');
  3. while ($guardadas[] = $materias->fetch_array());
  4.  
  5. foreach ($lista as $materia){
  6.     $checked = in_array($materia, $guardadas) ? 'checked' : '';
  7. ?>
  8.     <input
  9.           type = "checkbox"
  10.           name = "<?=$materia?>"
  11.           id = "<?=$materia?>"
  12.           value = "<?=$materia?>"
  13.           <?=$checked?>
  14.     />
  15. <?php
  16. }

Con la función in_array, buscas la materia de la lista en el array de las materias guardadas en la base de datos. La función devolverá true si es que se encuentra en ella o false si no está.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand