Ciao,

a occhio, però non sono sicuro, manca il return nella function tbl1 qui:
Codice PHP:
if ($result) { 
            
$sess_array = array(); 
            foreach (
$result as $row) { 
                
$sess_array = array( 
                       ............... 
                ); 
                
$this->session->set_userdata(...............); 
            } 
            return 
TRUE
        } else { 
            return 
tbl2($username$password); 
        } 
cioè....il valore di tbl2 tu lo ritorni nella funzione tbl1, però li si ferma e non viene restituito dalla funzione tbl1 (ripeto, a occhio, magari ho detto una cavolata)