2011-05-10 3 views
5

J'ai besoin d'aide pour déboguer mon code. Im nouveau dans php et im utilisant actuellement le framework codeigniter. Im essayant d'afficher le contenu de ma table de base de données sur ma pageErreur fatale: Appel à une fonction membre

/controllers/users.php

$<?php 

class Users extends CI_Controller{ 

    function __Users(){ 

    // load controller parent 
    parent::__Controller(); 

    // load 'Users' model 
    $this->load->model('Users'); 
    } 

    function index(){ 

    $data['users']=$this->Users->getUsersWhere('userid <',5); 
    $data['numusers']=$this->Users->getNumUsers(); 
    $data['title']='Displaying user data'; 
    $data['header']='User List'; 

    // load 'users_view' view 
    $this->load->view('users_view',$data); 
    } 
} 
?> 

/models/users.php

$<?php 

class Users extends CI_Model{ 

function __Users(){ 

// call the Model constructor 

parent::__CI_Model(); 

// load database class and connect to MySQL 

$this->load->database(); 

} 

function getAllUsers(){ 

$query=$this->db->get('admin_user'); 

if($query->num_rows()>0){ 

// return result set as an associative array 

return $query->result_array(); 

} 

} 

function getUsersWhere($field,$param){ 

$this->db->where($field,$param); 

$query=$this->db->get('admin_user'); 

// return result set as an associative array 

return $query->result_array(); 

} 

// get total number of users 

function getNumUsers(){ 

return $this->db->count_all('admin_user'); 

} 

} 

?> 

im ayant cette erreur

Fatal error: Call to a member function getUsersWhere() on a non-object in C:\xampp\htdocs\printone\application\controllers\users.php on line 16

ce qui pourrait être la faute?

Répondre

4

Vous avez mal nommé votre constructeur de contrôleur, il n'est donc pas appelé et votre modèle n'est pas chargé.

changement

function __Users(){ 

à

function __construct(){ 
+0

merci pour votre réponse ... im nouveau en php aussi bien avec le CodeIgniter devrait remplacer toutes les fonctions est que le constructeur appelle? fonction __Users() pour fonctionner __construct() ainsi que pour les modèles? – nhoyti

+0

Oui, tous vos constructeurs devraient s'appeler '__construct()'. Reportez-vous au [manuel PHP] (http://php.net/manual/fr/language.oop5.decon.php) et [Guide de l'utilisateur de CI] (http://codeigniter.com/user_guide) pour plus d'informations. – BoltClock

Questions connexes