Salve a tutti, il mio problema è proprio come da titolo.
l'errore è al punto dove ci sono tutti i cancelletti (#)
- richiamo table_view()
- la quale richiama row_view() in questo caso
- l'errore compare in due punti segnalati dai cancelletti (#), esattamente nella funzione table_view() e row_view().
- da considerare che in table_view() l'operazione viene eseguita esattamente due volte, la prima volta senza errore, dopo di che da errore

probabilmente mi sto perdendo qualcosa e non me ne sono accorto.
questa cosa è successa da quando ho cambiato i codici da mysql a mysqli.
le variabili da tenere traccia sono
- $result
- quelle affiancate dalla funzione di fetch_field()

p.s.
ho fatto mille cambiamenti al codice ed è probabile sia un po confuso.

grazie mille

codice:
while( $row_p = mysqli_fetch_row($result) )
    {
        table_view($row_p, $result, "list-view");
    }
codice:
function table_view($row_p, $result, $class_view)
{        
    global $database;
    
    // prima visualizzo la proprieta
    echo "\n".'<div class="row-view"> <!-- start row view -->';
    echo "\n\t".'<form action="'.htmlspecialchars($_SERVER['PHP_SELF']).'?content=update" method="post">';
    
    //    adesso visualizzo il risultato in base al modo di visualizzazione richiesto: se a elenco o dettagliato
    switch( $class_view )
    {
        case 'list-view':    //    se ho la visualizzazione lista, i singoli elementi sono linkabili
            $rif = "";
            for( $i=0; $i<count($row_p); $i++ )
            {                
                $label = mysqli_fetch_field($result);
                if( $label->name == 'rif' )    // qui l'errore non compare, $label risulta corretta
                    $rif = $row_p[$i];
            }
            
            echo "\n".'<a href="'.$_SERVER['PHP_SELF'].'?content=filter&view=detail&rif='.$rif.'">';
                row_view($row_p, $result);
            echo "\n".'</a>';
            break;
        
        case 'detail-view':
            detail_view($row_p, $result);
            break;
    }
    
    //    memorizzo il riferimento nel quale siamo
    $rif = "";
    for( $i=0; $i<count($row_p); $i++ )
    {
        $label = mysqli_fetch_field($result);

        if( $label->name == 'rif' )     // ##### l'errore scatta qui
            $rif = $row_p[$i];
    }
    
    //    se l'utente ha i permessi può cliccare per modificare
    list($status, $user) = auth_get_status();
        if( $status == AUTH_LOGGED )
        {
            //    name=server => memorizzo la pagina dalla quale sono venuto per poi ritornarci (se servisse)
            ?>
            
            <input name="rif_mod" value="<?=$rif?>" hidden />
            <input name="server" value="<?=htmlspecialchars($_SERVER['REQUEST_URI'])?>" hidden />
            <input type="submit" name="modifica" value="Modifica" />
            <?php
        }
    
    echo "\n\t".'</form>';
    echo "\n".'</div> <!-- end row view -->';    //    end row-view
}
codice:
function row_view($row, $result)
{
    $dir_foto = "";
    $dir_thumb = "";
    $titolo = "";
    $rif = "";
    
    //    risultati
    for($i=0; $i < count($row); $i++)
    {
        $label_name = $result->fetch_field();

        switch( $label_name->name )      // ##### l'errore scatta qui
        {
            case 'foto1':
                $dir_foto = _DIR_UPLOAD_FOTO.$row[$i];
                $dir_thumb = _DIR_THUMB_FOTO.$row[$i];
                break;
            
            case 'titolo':
                $titolo = $row[$i];
                break;
            
            case 'rif':
                $rif = $row[$i];
                break;
        }
    }
}