ADOdb.
Ej: Consiste:
Tengo 2 tablas, un usuario pertenece a 1 o + grupo(s)
table: usuario; // datos de los usuario
usersysgroup, //id del usuario , id grupo
gruposys, // datos de los grupos existentes
1.-Visualizar un checkboxes con smarty, sacando informacion de la base de datos, es
2.-Enviar los checkbox checkeados(marcados), en un formulario
3.-Modificarlo tb en la bd
Código PHP:
   //codigo en file_smarty.php
 
if(!isset($_REQUEST['btn_accept'])) //    NO - Presiono el Boton Autualizar
{                    
//seleciona todos los grupos que existe
$sql='SELECT groupsys, name FROM groupsys' 
$arraygroupsys = $db->GetAssoc($sql);        
$smarty->assign('arraygroupsys',$arraygroupsys);
 
//$usersys = al ID del usuario
//Los grupo que tiene asignado el usuario
$sqlusergroup='SELECT usersys, groupsys
        FROM usersysgroup
        WHERE usersys IN ('".$usersys."')'
$arrayrolselected = $db->GetAll($sqlusergroup);    
            $numberGrupoSelected = sizeof($arrayrolselected);             
     // Nos sirve para visualizar en checkbox los grupos ya asignado al usuario
            for($k=0 ; $k<$numberGrupoSelected ; $k++){
                 $vectorRolsSeleted[$k] = $arrayrolselected[$k][groupsys];            
            }
        $smarty->assign('vectorRolsSeleted',$vectorRolsSeleted);    
else 
{                                                    
  if(isset($_REQUEST['groupsys'])){
      $arraygroupsys = $_REQUEST['groupsys']; //Contiene el checkbox(s) seleted 
 
//     Eliminar Grupos(s) Asignados
 
                for($k=0 ; $k < $maxrolasignado; $k++){ // Rol Asignados                    
$query = "DELETE FROM usersysgroup WHERE usersys = '".$usersys."' AND groupsys = '".$groupsys."'";        
                    $groupsys = $arrayrolselected[$k][groupsys];
                    //echo "Delete Rol".$groupsys."<br />";        
                    $db->Execute($query);        
                }                    
    //si es q marco (checkbox), podemos insertamos nuevos grupos asignados en nuestra tabla usersysgroup     
  for($k=0 ; $k < $maxselectcheck; $k++){ // Rol Asignados        
$query = "INSERT INTO usersysgroup (usersys, groupsys) VALUES ('".$usersys."', '".$groupsys."')";
                    $groupsys = $arraygroupsys[$k];
                    //echo "Insert New Rol(s) Asignados".$groupsys."<br />";    
                    $db->Execute($query);                
                }                                                                    
        }                            
} 
    
Código:
  
// codigo del file.tpl
<form id="formAsignacionRol" name="formAsignacionRol" onsubmit="return validarPassword();" method="post" action="{$paglink}">
{html_checkboxes name="groupsys" options=$arraygroupsys selected=$vectorRolsSeleted separator="<br />"}
<input class="submitbutton" name="btn_accept" type="submit" id="btn_accept" value="Actualizar"/>
</form>
Solo lo subo para ayudar.
Codigo q funciona bien.
Si es q alguien puede mejorar el codigo no hay problema.
Gracias
 
