Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47

    Trying to get property of non-object

    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;
            }
        }
    }

  2. #2
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47
    up

  3. #3
    ma che stai facendo, perchè usi mysqli_fetch_field che torna la definizione della colonna nel db e non quello che contiene? http://php.net/manual/en/mysqli-result.fetch-field.php

    credo che tu intendessi usare http://php.net/manual/en/mysqli-result.fetch-row.php
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47
    Come puoi notare il fetch_row() lo faccio a monte e quindi ho già il risultato della riga.

  5. #5
    Utente di HTML.it L'avatar di vegasy
    Registrato dal
    Dec 2010
    Messaggi
    47
    Che nessuno sappia spiegarmi questa cosa?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.