在CodeIgniter中显示数据库记录

时间:2015-04-08 09:28:48

标签: php mysql arrays codeigniter

我正在使用CodeIgniter进行Web应用程序,但我仍然坚持向用户显示数据库记录。目前我有这个:

**模特**

function showAllUsers()
 {
    $this -> db -> select('id, username, password');
    $this -> db -> from('app_users');

    $query = $this -> db -> get();
    if($query -> num_rows() > 0)
    {


        return $query->result();
    }
    else
    {

        return false;
    }

 }

**控制器**

function index()
 {
   if($this->session->userdata('logged_in'))
   {
        $data = array();
        $session_data = $this->session->userdata('logged_in');
        $data['loggedin'] = $session_data['username'];
        $type = $this->fillUserModule();

        $naarview = array_merge( $data, $type );

        //$data['title'] = ucfirst($page); //Capitalize first letter
        $this->load->view('templates/header');
        $this->load->view('navbar.php');
        $this->load->view('pages/home', $naarview);

        $this->load->view('templates/footer');
   }
   else
   {
     //If no session, redirect to login page
     redirect('login', 'refresh');
   }
 }

 function fillUserModule()
 {
    //Run the query for getting all users
    $result = $this->user->showAllUsers();


    if ($result)
    {
        var_dump($result);
        return $result;
    }
   else
   {



     return false;
   }
 }

如果我转储结果,我会得到这个,这是来自$ result查询:

array(2) { 
    [0]=> object(stdClass)#20 (3) { 
        ["id"]=> string(1) "1" 
        ["username"]=> string(3) "bob" 
        ["password"]=> string(32) "81dc9bdb52d04dc20036dbd8313ed055" 
       } 
   [1]=> object(stdClass)#21 (3) {
       ["id"]=> string(1) "2" 
       ["username"]=> string(4) "huub" 
       ["password"]=> string(32) "258bb2089ad9345897565e3e7f023f6e" 
       } 
} 

但我似乎无法在View中访问它。我可以访问“登录”'变量,但一个明确标识,但实际用户的数组,来自模型和控制器,我无法访问它,可能是因为它是一个数组,这是一个stdClass?

我是否需要将这些值转换为另一个数组,以便我可以访问它?

4 个答案:

答案 0 :(得分:1)

使用$query->result_array()代替$query->result()。结果将是数组,而不是对象:)

答案 1 :(得分:1)

像这样编辑控制器

 $this->load->view('pages/home', array('naarview' => $naarview));

并在主页视图页面中访问它。

答案 2 :(得分:1)

在这里,您将看到我们如何从codeigniter

中的控制器发送数据
function fillUserModule()
 {
   //Run the query for getting all users
    $result = $this->user->showAllUsers();
    if ($result)
    {  
         $data['result']=$result;
        //load view here
         $this->load->view('home', $data);
    }
      else
   {
     return false;
   }
 }

在您的视图页面中使用

foreach($result as $val){
//your code here
}

答案 3 :(得分:1)

试试这个:

function fillUserModule()
{
    //Run the query for getting all users
    $result = $this->user->showAllUsers();

    if ($result)
    {
        var_dump($result);
        echo $result->username."<br />";
        return $result;
    }
    else
    {
        return false;
    }
}

您可以使用"->"访问对象数据,如下所示:echo $result->username."<br />";