doumao1917
doumao1917
2018-09-26 09:24
浏览 77
已采纳

codeigniter中的动态数据

I am new in codeigniter and i am working on ecommerce template. By default whenever index() has been hit, it's showing all products in different sections (in html) and I want to make this dynamic so should I use queries in index() for get different type of records or there is any other way? This is my code:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
    public function index()
    {
        //echo "hello world";
        $this->load->view('index');
    }
}
?>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dto52236
    dto52236 2018-09-26 10:09
    已采纳

    First need to create database and table as per your requirement. Then you can create model for reference check this link : https://www.codeigniter.com/userguide3/general/models.html

    <?php 
    class Blog_model extends CI_Model {
    
            public function get_data_first()
            {
                    $query = $this->db->get('entries', 10);
                    return $query->result();
            }
    
            public function get_data_second()
            {
                   $query = $this->db->get('entries', 10);
                    return $query->result();
            }
    }
    ?>
    

    After making model go to your controller and include it like:

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    class Home extends CI_Controller {
        public function index()
        {
            $this->load->model('my_model');
    
            $data['first_list'] = $this->my_model->get_data_first();
            $data['second_list'] = $this->my_model->get_data_second();
            //echo "hello world";
            $this->load->view('index', $data);
        }
    }
    ?>
    

    Then use you param in index file like :

    <html>
    <head></head>
    <body>
    <?php
    if($first_list){
     foreach($first_list as $each){
        echo $each->my_param;
     }
    }
    ?>
    <?php
    if($second_list){
     foreach($second_list as $each){
        echo $each->my_param2;
     }
    }
    ?>
    </body>
    </html>
    

    I hope this helpful for you.

    点赞 评论
  • duanmengmiezen8855
    duanmengmiezen8855 2018-09-26 10:01

    In Models folder write Home_model.php file for querying database. Suppose you have a table called 'products'.

    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    class Home_model extends CI_Model{
            public function __construct()
            {
                   parent::__construct();
            }
    
            public function getProducts()
            {           
                $this->db->from('products');            
                $query=$this->db->get();    
                $out = $query->result_array();
                return $out;
            }
    
    }
    

    The function 'getProducts' will get you all the products from 'products' table. Now in your controller load the 'database' library and the model.

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    
    class Home extends CI_Controller {
    
    
         function __construct(){
    
             parent::__construct();
             $this->load->model('home_model');
             $this->load->library('database');
         }
         public function index(){
             $products = array();
             $products = $this->home_model->getProducts();
             $this->load->view('index',$products);
         }
    
    }
    

    In index function function of controller you can call the 'getProduct' function of model.And can pass the data to view.

    Documentation link for model.

    enter link description here

    I hope this helps.

    点赞 评论

相关推荐