skip to Main Content

In model/rci_model.php

public function record_count() {
return $this->db->count_all("produk");
}

public function fetch_countries($limit, $start) {
    $this->db->limit($limit, $start);
     $query=$this->db->query("SELECT * FROM produk WHERE id_kategori='Men' order by nama_produk ASC");
        return $query->result();

    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $data[] = $row;
        }
        return $data;
    }
    return false;
}

In controller/sandal_clarudo.php

function sandals_for_men(){
$data['seo'] = $this->rci_model->tampil_meta(22);
$this->load->view('head', $data);
$config = array();
$config["base_url"] = "http://localhost/clarudo/index.php/sandal_clarudo/sandals_for_men/";
$config["total_rows"] = $this->rci_model->record_count();
$config["per_page"] = 5;
$config["uri_segment"] = 3;

$this->pagination->initialize($config);

$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data["results"] = $this->rci_model->
    fetch_countries($config["per_page"], $page);
$data["links"] = $this->pagination->create_links();
$this->load->view('men', $data);
$this->load->view('footer');
}

In view/men.php

<?php
foreach($results as $t){
echo "$t->nama_produk";
}

I want to show product that has category = ‘Men’ only, but using my code it shows all category products. Ideas?

3

Answers


  1. Try this one. You wrong when using limit.

    $query=$this->db->query("SELECT * FROM produk WHERE id_kategori='Men' order by nama_produk ASC LIMIT $limit, $start");
    
    Login or Signup to reply.
  2. $this->db->limit($limit, $start);
    $this->db->where('id_kategori', 'men');
    $this->db->order_by('nama_produk');
    $query = $this->db->get("produk");
    

    Hope this work!

    for count use :

    public function record_count($limit, $start) {
                $this->db->from('count(id_produk) AS count');
                $this->db->where('id_kategori', 'men');
                $this->db->order_by('nama_produk');
                $this->db->limit($limit, $start);
                $return = $query->row_array();
                return $return['count'];
            }
    
    Login or Signup to reply.
  3. Try This

    in cotroller

    $count = $this->rci_model->get_count(); //get number of rows
    
    $config['base_url'] = base_url().'index.php/sandal_clarudo/sandals_for_men/';
    $config['total_rows'] = $count;
    $config['per_page'] = 5;
    $config['uri_segment'] = 3;
    $limit = $config['per_page'];
    
    $this->pagination->initialize($config);
    
    $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
    
    $data['links'] = $this->pagination->create_links();
    
    $data["results"] = $this->rci_model->fetch_countries($limit, $page);
    

    in model

    public function get_count() 
    {
      //count          
    $query=$this->db->query("SELECT * FROM produk WHERE id_kategori='Men'");
    $result = $query->result_array();
    $count = count($result);
     return $count;
    }
    //data from table
    public function fetch_countries($limit, $page) 
    {
    $query=$this->db->query("SELECT * FROM produk WHERE id_kategori='Men' LIMIT $page, $limit");
    $result = $query->result_array();
    return $result;
    }
    

    in view

    //to show data
    <?php
    foreach ($results as $new_result)
    {
    echo $new_result['nama_podak'];
    }
    ?>
    
    //to show pagination
    <?php
    echo $link//Page segment tabs(you can config boostarp for this)
    ?>
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search