【问题标题】:codeigniter retrieve data from database normal print_r working fine but can't use foreach whycodeigniter 从数据库中检索数据正常 print_r 工作正常但不能使用 foreach 为什么
【发布时间】:2016-06-18 04:44:00
【问题描述】:

我要从 db 中获取特定的性别,比如 gender='male' 代码工作正常,但无法在 foreach 中对其进行迭代

可以查看的型号

 class get_all_gender extends CI_Model {
        //put your code here
        public function select_male() {
            $this->db->select('*');
            $this->db->from('bride_groom_register');
             $this->db->where("gender='male'");
            $query = $this->db->get();
            if ($query->result() > 0) 
           {
                return $query;
            } else {
                return FALSE;
            }
        }

    }

控制器我正在从数据库中获取数据

class Welcome extends CI_Controller {


    public function index()
    {
            $this->load->model('get_all_gender');

            $data['res']=$this->get_all_gender->select_male();
            $this->load->view('list',$data);

        }
}

简单视图

foreach ($res as $row)
{
    echo $row->name;

}

【问题讨论】:

  • 您能接受对您有用的答案吗?

标签: php codeigniter activerecord codeigniter-2


【解决方案1】:

试试这个

在模型中

class get_all_gender extends CI_Model {
    //put your code here
    public function select_male() 
    {
        $this->db->select('*');
        $this->db->from('bride_groom_register');
        $this->db->where("gender='male'");
        $query = $this->db->get();
        $result = $query->result_array();

        if (!empty($result)) 
        {
            return $result;
        } 
        else {
            return FALSE;
        }
    }
}

在控制器中

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->model('get_all_gender');

        $data['res']    =   $this->get_all_gender->select_male();
        $this->load->view('list',$data);
    }
}

可见

if ($res != FALSE) {
    foreach ($res as $value) {
        echo $value;
    }
} 
else {
    echo "Seleted Category is Empty";
}

【讨论】:

    【解决方案2】:

    您应该返回$queryresult() 而不是$query 本身。您的模型应如下所示:

    class Get_all_gender extends CI_Model {//put your code here
    
        public function select_male() {
            $this->db->where("gender","male");
            $query = $this->db->get("bride_groom_register");
    
            if ($query->num_rows() > 0)  {
    
                return $query->result();
            } else {
    
                return FALSE;
            }
        }
    }
    

    您将结果保存在控制器中:

    $data['res'] = $this->get_all_gender->select_male();
    

    所以你可以在视图中这样访问它:

    if($res !== FALSE){
      foreach ($res as $row)
      {
          echo $row->name;
      }
    }
    

    您应该检查 FALSE 条件,否则当模型没有返回任何行时,视图将抛出 PHP 错误。

    【讨论】:

      【解决方案3】:

      在模型上尝试下面的代码

      类名首字母大写

      文件名:Get_all_gender.php

      <?php
      
      class Get_all_gender extends CI_Model {//put your code here
      
          public function select_male() {
              $this->db->select('*');
              $this->db->from('bride_groom_register');
              $this->db->where('gender', 'male');
              $query = $this->db->get();
      
              if ($query->num_rows() > 0)  {
      
                  return $query->result_array();
      
                  // Or 
      
                  // return $query->row_array();
      
              } else {
      
                  return FALSE;
      
              }
          }
      
      }
      

      正在查看

      foreach ($res as $row)
      {
          echo $row['name'];
      
      }
      

      【讨论】:

      • 如果我获得 15 名声望,那么我的投票将被视为我是新来的
      • 无论您有多少代表,您都可以点击勾选接受答案。
      【解决方案4】:

      类名首字母大写

      class Get_all_gender extends CI_Model {//put your code here
      
          public function select_male() {
              $this->db->select('*');
              $this->db->from('bride_groom_register');
              $this->db->where("gender='male'");
              $query = $this->db->get();
      
              if ($query->num_rows() > 0)  {
      
                  return $query->result_array();
      
              } else {
      
                  return FALSE;
      
              }
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        相关资源
        最近更新 更多