IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

CodeIgniter PHP Discussion :

Trying to get property of non-object


Sujet :

CodeIgniter PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 38
    Points : 38
    Points
    38
    Par défaut Trying to get property of non-object
    bonjour,
    je suis débutante en codeigniter et j'ai beaucoup d'erreur sur mon projet
    mon controller auth.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    <?php
    	defined('BASEPATH') OR exit('No direct script access allowed');
     
    	class Auth extends CI_Controller {
    		function Auth(){
    			parent::__construct();
    			$this->lang->load('en_admin_lang','english');
    			$this->load->helper('form');
    			$this->load->model('users_model');
    			$this->load->helper('html'); 
    			$this->load->library('form_validation');//mcharger form_validation any am library
    			$this->load->library('pagination');
     
    		}
     
    		public function index(){
    			$this->login();
    		}
     
    		function login(){
    			$msg = "";
    			if ($this->input->post('password')){
    				$stat = $this->check_login();
     
    				$msg = $stat['msg'];
    				if ($stat['result'] == 'OK'){
    					redirect ('auth/admin_main_menu');
    				}
    				else
    				{
    					$this->session->sess_destroy();
    				}
    			}
    			$view_setup['msg'] = $msg;
    			$this->load->view('../common/header');
    			$this->load->view('login_view.php', $view_setup);
    			$this->load->view('../common/footer');
    		}
    		function check_login(){
    			$user_name = $this->input->post('user_name');
    			$password = $this->input->post('password');
     
    			$ret = array();
     
    			$user_record = $this->users_model->check_login($user_name, $password);
    			if ($user_record){
    				$this->session->set_userdata ('user_id', $user_record->id);
    				$this->session->set_userdata ('user_name', $user_record->user_name);
    				//$this->session->set_userdata ('role', $user_record->role);
    				$ret ['result'] = 'OK';
    				$ret ['msg'] = 'Logged-in';
    			}else{
    				$ret ['result'] = 'NON OK';
    				$ret ['msg'] = 'Invalid User/Pass  - Try Again !!!!';
    			}
     
    			return $ret;
    		}
    		function logout (){
    			$this->session->sess_destroy();
    			redirect('auth');
    		}
     
    		function admin_main_menu(){
    			$view_setup['uid'] = $this->session->userdata('user_id');
    			$view_setup['user_name'] = $this->session->userdata('user_name');
    			//$view_setup['role'] = $this->session->userdata('role');
    			$view_setup['menu'] = "Add user/Modify User/ Delete User";
    			$this->load->view('../common/header');
    			$this->load->view('accueil1.php', $view_setup);
    			$this->load->view('../common/footer');
    		}
     
    		function accueil(){
    			$view_setup['uid'] = $this->session->userdata('user_id');
    			$view_setup['user_name'] = $this->session->userdata('user_name');
     
    			$this->load->view('../common/header');
    			$this->load->view('/accueil1', $view_setup);
    			$this->load->view('menu/acc', $view_setup);
    			$this->load->view('../common/footer');
    		}
     
    		function vehicule(){
     
    			$data['uid'] = $this->session->userdata('user_id');
    			$data['user_name'] = $this->session->userdata('user_name');
     
    			$page = $this->uri->segment(4,0);
     
    			$config['per_page'] = '5';//nbre de page 
    			$config['uri_segment'] = 4;
    			$vehicules = $this->users_model->findAll($config['per_page'],$page);
    			$config['first_link'] = 'Début ';
    			$config['next_link'] = ' Suivant ';
    			$config['prev_link'] = ' Précédent ';
    			$config['last_link'] = ' Fin';
    			$config['total_rows'] = $this->users_model->getCountTable();
     
    			$data['context'] = 'list';
     
    			$data['titre'] = 'Liste de compositeurs';
     
    			$data['liste_veh'] = array('liste_veh'=>$vehicules);
     
     
     
    			$this->load->view('../common/header');
    			$this->load->view('/accueil1', $data);
    			$this->load->view('menu/veh', $data);
     
     
    			$this->load->view('../common/footer');
    		}
           }
    ?>
    Mon model: users_model.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
    	defined('BASEPATH') OR exit('No direct script access allowed');
     
    	class Users_model extends CI_Model{
    		function __construct(){
    			parent ::__construct();
    		}
     
    		function check_login($user, $pass){
    			$sql = "SELECT * FROM utilisateur WHERE
    			 login = '$user' AND AES_DECRYPT(mdp,'liva') = '$pass'";
    			$q = $this->db->query($sql);
    			if ($q->num_rows()){
    				foreach ($q->result() as $row) // result: mcreer anle requete ho lasa tableau associatif
    					return $row;
    			}
    		}
     
    		function get_veh($immveh)
    		{
    			$this->db->where('immveh', $immveh);
    			$query = $this->db->get('products');
    			return $query;
    		}
     
    		function add($data)
    		{
    			$this->db->insert('vehicule', $data);
    			return $this->db->insert_id();
    		}
     
    		public function findAll($start, $offset)
    		{
    			$query = $this->db->get('vehicule',$start,$offset);
    			$this->count = $query->num_rows();
    			return $query->result();
    		}
     
    		public function getCountTable()
    		{
    			$query = $this->db->get('vehicule');
    			return $query->num_rows();
    		}
     
     
    	}
    ?>
    Mon view : menu/veh.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <table border = "1">
    <?php foreach ($liste_veh as $vehicules): ?>
    	<tr>
    		<td><?php $vehicules->immveh; ?></td>
    		<td><?php echo $vehicules->marqveh; ?></td>
    	</tr>
    <?php endforeach; ?>
    </table>
    Pourquoi dans les deux <td> sont toujours erreur et l'errreur est comme ca: Trying to get property of non-object
    Aide moi s'il vous plais

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    "Trying to get property of non-object" signifie que la variable ne contient pas un objet mais un autre type de données. Le plus simple pour savoir ce qu'il y a dedans est de faire un affichage de debug avec un var_dump.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php foreach ($liste_veh as $vehicules): ?>
    <?php var_dump($vehicules); ?>
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach ($q->result() as $row) // result: mcreer anle requete ho lasa tableau associatif
    					return $row;
    			}
    Je ne connais pas la langue du commentaire, mais on parle de tableau associatif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <table border = "1">
    <?php foreach ($liste_veh as $vehicules): ?>
    	<tr>
    		<td><?php $vehicules['immveh']; ?></td>
    		<td><?php echo $vehicules['marqveh']; ?></td>
    	</tr>
    <?php endforeach; ?>
    </table>

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 38
    Points : 38
    Points
    38
    Par défaut var_dump
    quand je mis var_dump dans le $vehicule
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    					<table border = "1">
    					<?php foreach ($liste_veh as $vehicules): ?>
    						<tr>
    							<td><?php var_dump($vehicules); ?></td>
    							<td><?php $vehicules->immveh; ?></td>
    							<td><?php echo $vehicules->marqveh; ?></td>
    						</tr>
    					<?php endforeach; ?>
    					</table>
    Il affiche tous mes bases de données dans le tableau.
    Mais quand je mis var_dump dans le $vehicule->immveh par exemple
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    					<table border = "1">
    					<?php foreach ($liste_veh as $vehicules): ?>
    						<tr>
    							<td><?php var_dump($vehicules->immveh); ?></td>
    							<td><?php $vehicules->immveh; ?></td>
    							<td><?php echo $vehicules->marqveh; ?></td>
    						</tr>
    					<?php endforeach; ?>
    					</table>

    Il affiche toujours
    Message: Trying to get property of non-object
    Je ne sais pas, ou est le problème.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ce sont bien des objets et pas des tableaux ? Et tu as bien les données d'une seule ligne par ligne ?
    (en fait ce serait peut-être plus simple de nous faire un copier-coller du résultat du var_dump )
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,

    utilisez $data['liste_veh'] = $vehicules; à la ligne 104 du contrôleur , dans ce cas la variable $list_veh dans la vue contiendra éventuellement un tableau d'objets. Sinon il faudra utiliser
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach ($list_veh['list_veh'] as $vehicules) { 
    //code ici
    }
    Le bienfait n'est jamais perdu

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 38
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Salut,

    utilisez $data['liste_veh'] = $vehicules; à la ligne 104 du contrôleur , dans ce cas la variable $list_veh dans la vue contiendra éventuellement un tableau d'objets. Sinon il faudra utiliser
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach ($list_veh['list_veh'] as $vehicules) { 
    //code ici
    }
    Merci Willy_k pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Erreur de type : "Trying to get property of non-object in"
    Par Prisss dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 16/12/2010, 08h02
  2. [Joomla!] [Adsmanager] Notice: Trying to get property of non-object in C:\Program Files\EasyPHP
    Par ninobrown dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 13/04/2009, 22h13
  3. Réponses: 3
    Dernier message: 08/02/2008, 21h02
  4. Réponses: 11
    Dernier message: 28/08/2007, 13h06
  5. [POO] Erreur Trying to get property of non-object
    Par Niouts dans le forum Langage
    Réponses: 14
    Dernier message: 13/09/2006, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo