【问题标题】:Show database records in CodeIgniter在 CodeIgniter 中显示数据库记录
【发布时间】:2015-06-13 04:28:27
【问题描述】:

我正在使用 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" 
       } 
} 

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

我是否需要将这些值转换为另一个数组才能访问它?

【问题讨论】:

  • 您的视图名称是什么?
  • user.php 是我的模型名,home.php 是我的视图名!
  • 在您的模型中,您需要传递 $query->result_array() 而不是 $query->result()

标签: php mysql arrays codeigniter


【解决方案1】:

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

【讨论】:

  • 感谢您的回答,非常感谢!
【解决方案2】:

像这样编辑控制器

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

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

【讨论】:

  • 感谢您的回答,非常感谢!
【解决方案3】:

在这里您可以看到我们如何从 codignator 中的控制器发送数据到视图

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

在您使用的 viwe 页面中

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

【讨论】:

  • 感谢您的帮助,我使用了您的方法,并编辑了一些内容以使其正常工作!谢谢!
【解决方案4】:

试试这个:

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

您可以使用"-&gt;" 像这样访问对象数据:echo $result-&gt;username."&lt;br /&gt;";

【讨论】:

  • 感谢您的回答,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 2014-11-29
  • 1970-01-01
相关资源
最近更新 更多