EDITO:
Esto sirve en el caso que necesite editar las selecciones realizadas por un usuario mediante checkbox... en mi caso, eran maestros que seleccionaban 1 o más materias de un listado, pero luego necesitaban modificar por X razón, ya sea para agregar nuevos o deseleccionar alguno. Ojo que solo pone CHECKED a los INPUT segun coincidan en la BD, la edición, agregados, es decir, UPDATES, DELETE y demás, se generan con otras funciones y rutinas PHP-Mysql.-
Lo solucioné así, y espero se entienda, después lo traducen a PDO o Mysqli, o lo que deseen que no esté DEPRECATED...
Código PHP:
<?php
//traigo las materias seleccionadas por el usuario
$s = "SELECT idmateria FROM permisos_materias WHERE idusuario = ".$idusuario;
$q = mysql_query($s, $conn);
// creo el array de materias seleccionadas por el cliente
$materias_usuario = array();
while($row = mysql_fetch_array($q)) {
$materias_usuario[] = $row;
}
//traigo todas las materias para colocarlas en un CHECKOX
$s2 = "SELECT idmateria, materias FROM materias";
$q2 = mysql_query($s2, $conn);
// creo el array de todas las materias para comparar
$todas_las_materias= array();
while ($r2 = mysql_fetch_array($q2)) {
$todas_las_materias[]= $r2;
}
// bucleo para traer todas las materias en un checkbox
for($j=0;$j<count($todas_las_materias);$j++){
?>
<!--Inicio LABEL-->
<label>
<input type="checkbox" name="materias[]" value="<?php echo $todas_las_materias[$j][0]; ?>"
<?php
// bucleo para buscar todas las materias del usuario
// dentro de todas las materias existentes
for($i=0;$i<count($materias_usuario);$i++){
if($materias_usuario[$i][0]==$todas_las_materias[$j][0]){
echo 'checked';
}
}
?>
/><!--cierre de checkbox-->
<?php echo $todas_las_materias[$j][1]; ?>
</label><br />
<!--Fin LABEL-->
<?php
}
?>
Saludos