aammjian 发表于 2014-8-7 11:16:50

【新手请教!】连接数据库后查询结果的显示

model:

<?php
class User_model extends CI_Model{
        public function__construct()
        {
                $this->load->database();
               
        }
        public function get_user($login='admin')
        {
                $query = $this->db->get_where('tk_user',array('tk_user_login'=>$login));               
               
                return $query->result_array();
        }
}


Controler:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Userlog extends CI_Controller {
public function __construct()
{
    parent::__construct();
    $this->load->model('User_model');
}


        public function index()
        {
               $this->load->helper("url");
                                 
               
                $data['user'] = $this->User_model->get_user();
       
                $this->load->view('user_log',$data);
        }
}


View:

        <?php
                foreach ($user as $result)
                {
                        echo $result->tk_user_login.'<br>';
                }
               
        ?>




最后结果显示是错误。Undefined variable: user;
另外如果我将model里面的result_array修改为row_array,能够显示最终的查询结果,但是我如何显示列名呢?
新手请教!

Altair 发表于 2014-8-8 14:33:52

亲,一个,很幼稚的错误啊 ,太大意了吧 !!!!

echo $result->tk_user_login.'<br>';

你的这一行代码,是把$result当作对象来处理.但是根据你的逻辑来分析的话,此处的$result应该是一个关联数组.
你把代码改为

echo $result['tk_user_login'].'<br>';

试试.

又或者把
return $query->result_array();

改为:

return $query->result();

不要同时改!详情看这里: 生成查询记录集
另外,看一下这里:[跨平台] kint-最著名的PHP开源调试工具 试着自己调试程序解决问题吧!

aammjian 发表于 2014-8-12 16:34:47

Altair 发表于 2014-8-8 14:33
亲,一个,很幼稚的错误啊 ,太大意了吧 !!!!

你的这一行代码,是把$result当作对象来处理.但是根据你的逻辑来 ...

大哥你的意思明白,我重新贴下啊

在model里面

public function get_user($login='admin')
        {
               $query = $this->db->get_where('user',array(user_login'=>$login));       
                return $query->result_array();
        }


在控制器里面

$user = $this->User_model->get_user($Username);

if (empty($user))
{       
        $this->load->view('v_Login',$data);       
}
else
{
        $loginStatus= $user['user_status'];   //以数组的形式他就会报错,按照model里面写的我也是数组啊?完全不明白了。

}



jieai618 发表于 2014-8-12 16:45:39

aammjian 发表于 2014-8-12 16:34
大哥你的意思明白,我重新贴下啊

result_array() 返回的二维数组
row_array()返回的一位数组

明白了吧

aammjian 发表于 2014-8-12 16:52:18

jieai618 发表于 2014-8-12 16:45
result_array() 返回的二维数组
row_array()返回的一位数组



明白了,那再问下
文件demo里面给出的例子是这样,为什么就ok?

$query = $this->db->query("要执行的 SQL");

foreach ($query->result_array() as $row)
{
   echo $row['title'];
   echo $row['name'];
   echo $row['body'];
}


页: [1]
查看完整版本: 【新手请教!】连接数据库后查询结果的显示