用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1506|回复: 4
收起左侧

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

[复制链接]
发表于 2014-8-7 11:16:50 | 显示全部楼层 |阅读模式
PHP复制代码
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,能够显示最终的查询结果,但是我如何显示列名呢?
新手请教!
发表于 2014-8-8 14:33:52 | 显示全部楼层
亲,一个,很幼稚的错误啊 ,太大意了吧 !!!!
PHP复制代码
 
echo $result->tk_user_login.'<br>';
 
复制代码

你的这一行代码,是把$result当作对象来处理.但是根据你的逻辑来分析的话,此处的$result应该是一个关联数组.
你把代码改为
PHP复制代码
 
echo $result['tk_user_login'].'<br>';
 
复制代码

试试.

又或者把
PHP复制代码
 
return $query->result_array();
 
复制代码

改为:
PHP复制代码
 
return $query->result();
 
复制代码

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

评分

参与人数 1威望 +1 收起 理由
沦陷今生 + 1 赞一个!

查看全部评分

 楼主| 发表于 2014-8-12 16:34:47 | 显示全部楼层
Altair 发表于 2014-8-8 14:33
亲,一个,很幼稚的错误啊 ,太大意了吧 !!!!

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

大哥你的意思明白,我重新贴下啊
PHP复制代码
 
 
在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里面写的我也是数组啊?完全不明白了。
 
}
 
复制代码


发表于 2014-8-12 16:45:39 | 显示全部楼层
aammjian 发表于 2014-8-12 16:34
大哥你的意思明白,我重新贴下啊

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

明白了吧
 楼主| 发表于 2014-8-12 16:52:18 | 显示全部楼层
jieai618 发表于 2014-8-12 16:45
result_array() 返回的二维数组
row_array()返回的一位数组

明白了,那再问下
文件demo里面给出的例子是这样,为什么就ok?
PHP复制代码
 
[color=#02166]$query = $this->db->query("要执行的 SQL");

[color=#02166]foreach ($query->result_array() as $row)
[color=#02166]{
[color=#02166]   echo $row['title'];
[color=#02166]   echo $row['name'];
[color=#02166]   echo $row['body'];
[color=#02166]}
 
复制代码


本版积分规则