Welcome Guest, Not a member yet? Register   Sign In
Attempt to read property on null sometime
#1

(This post was last modified: 09-20-2022, 12:52 AM by pippuccio76.)

HI , sorry for english , i have a proble with a model the problem occours sometime not always , if i refresh the same page the system work without error   . This is the problem in log :
Code:
CRITICAL - 2022-09-20 02:22:18 --> Attempt to read property "id_piani_campate" on null
in APPPATH/Models/Locazioni_pianiModel.php on line 48.
This is Locazioni_pianiModel function of error:
Code:
    function piani_campate_from_locazione($id_locazioni_piani)
    {
      $locazioni_piani_model = new Locazioni_pianiModel();
      $piani_campate_model  = new Piani_campateModel();

      $locazione = $locazioni_piani_model->find($id_locazioni_piani);

      $piano_campata = $piani_campate_model->find($locazione->id_piani_campate); //error on this line

      return $piano_campata;
   
    }

this is the part of controller where error occour:
Code:
$post = $this->request->getPost();


                $locazione_carico = $scaffali_model->ricerca_locazione_materiale($post['id_imballi']);


                if(!$locazione_carico){
                   
                    $data['messaggi_errore'] = 'Nessuna locazione libera per l\'imballo inserito  ';

                    $data ['redirect'] =base_url().'/users_carico/carico';

                    echo view('common/messaggi_errore',$data );

               
                }else{
                   
     

                    $data['piano']    = $locazioni_piani_model->piani_campate_from_locazione($locazione_carico[0]->id_locazione_piano);
                    $data['campata']  = $locazioni_piani_model->campate_scaffali_from_locazione($locazione_carico[0]->id_locazione_piano);
                    $data['scaffale'] = $locazioni_piani_model->scaffali_from_locazione($locazione_carico[0]->id_locazione_piano);

                    $data['locazione'] = $locazioni_piani_model->find($locazione_carico[0]->id_locazione_piano);

                    $data['materiale'] = $materiali_model->find($post['id_materiale']);
                    $data['quantita'] = $post['quantita'];
                       
                    //dd($piano);
                    //dd($campata);
                    //dd($scaffale);
                    //echo $scaffale->nome.'|'.$campata->numero.'|'.$piano->numero.'|'.$locazione_carico[0]->nome_locazione;

                    //print_r($post);
                    echo view('empty_view',$data );
                    echo view('user/carico/conferma_carico' );
                }
And this the function of scaffali_model :
Code:
    public function ricerca_locazione_materiale($id_imballo)
    {
        $db = \Config\Database::connect();

        $query =
        "
        SELECT
        locazioni_piani.nome as nome_locazione,locazioni_piani.id as id_locazione_piano,
        piani_campate.numero as numero_piani_campate,
        campate_scaffali.numero as numero_campata_scaffale,
        scaffali.nome as nome_scaffale

        FROM locazioni_piani

        JOIN piani_campate  on (locazioni_piani.id_piani_campate=piani_campate.id)
        JOIN campate_scaffali on (campate_scaffali.id=piani_campate.id_campate_scaffali)
        JOIN scaffali on (scaffali.id=campate_scaffali.id_scaffali)

        WHERE piani_campate.id_imballi = '$id_imballo'
        AND ISNULL(piani_campate.deleted_at)

        AND ISNULL(locazioni_piani.id_materiale)

        ORDER BY RAND()

        LIMIT 1";



        $res=$db->query( $query )->getResult();

       
        return $res;

    }//end ricerca_locazione_materiale


How can i  solve ? why if i refresh the error disappear ?
Reply
#2

(This post was last modified: 09-20-2022, 05:19 AM by pippuccio76.)

Found error , the problem is on some record of locazioni_piani table , deleted manually by add deleted_at on db . Because normally i delete every of piani campate . change sql query in this way :

[CODE]
$query =
        "
        SELECT
        locazioni_piani.nome as nome_locazione,locazioni_piani.id as id_locazione_piano,
        piani_campate.numero as numero_piani_campate,
        campate_scaffali.numero as numero_campata_scaffale,
        scaffali.nome as nome_scaffale

        FROM locazioni_piani

        JOIN piani_campate  on (locazioni_piani.id_piani_campate=piani_campate.id)
        JOIN campate_scaffali on (campate_scaffali.id=piani_campate.id_campate_scaffali)
        JOIN scaffali on (scaffali.id=campate_scaffali.id_scaffali)

        WHERE piani_campate.id_imballi = '$id_imballo'
        AND ISNULL(locazioni_piani.deleted_at)
        AND ISNULL(piani_campate.deleted_at)
        AND ISNULL(locazioni_piani.id_materiale)

        ORDER BY RAND()

        LIMIT 1";

[CODE]

The error sometime is because have rand() ...
Sorry my mistake
Reply




Theme © iAndrew 2016 - Forum software by © MyBB