Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

[Help] Fungsi Order by tidak berfungsi di codeigniter

Controler
[code]function listcategory($page = null){
        $id = $this->input->get('list');
        $data['categoryHead'] = $this->M_home->listCategory();
        $this->load->view('frontend/template/header', $data);
        $data['productsLast'] = $this->M_home->listProductLast();
        $data['productsLast2'] = $this->M_home->listProductLast2();
        $data['category'] = $this->M_home->listCategory();
//paging
        $config['base_url']            = base_url('categoryproduct'.'?'.http_build_query($_GET));
        $config['total_rows']        = $this->M_home->listProductPerCategory_num_rows($id);
        $config['per_page']            = $per_page = 12;
        $config['uri_segment']        = 2;
        $config['first_link']        = 'First';
        $config['last_link']        = 'Last';
        $config['next_link']        = 'Next';
        $config['prev_link']        = 'Prev';
        $config['page_query_string'] = TRUE;
        //end paging
        $this->pagination->initialize($config);
        $data['paging'] = $this->pagination->create_links();
        $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
        $data['listCategory'] = $this->M_home->listProductPerCategory($id, $per_page, $page);
        $this->load->view('frontend/category', $data);
        $this->load->view('frontend/template/footer');
    }[/code]

Model
[code]function listProductPerCategory($id, $limit, $start){
        $this->db->select('
            category.id, category.category, product.id, product.id_category,
            product.name, product.picture, product.description, product.permalink, product.part_no
        ');
        $this->db->from('product');
        $this->db->join('category', 'product.id_category = category.id');
        $this->db->where('product.id_category', $id);
        
        $this->db->order_by('part_no', 'ASC');
        $this->db->limit($limit, $start);
        $query = $this->db->get();
        return $query->result();
    }

    public function listProductPerCategory_num_rows($id){
        // $this->db->select('
        //     category.id, category.category, product.id, product.id_category,
        //     product.name, product.picture, product.description, product.permalink
        // ');
        // $this->db->join('category', 'product.id_category = category.id');
        // $this->db->where('product.id_category', $id);
        // $query = $this->db->get($this->tableProduct);
        // return $query->num_rows();
        $this->db->select('*');
        $this->db->join($this->tableProduct, 'product.id_category = category.id');
        $this->db->where('product.id_category', $id);
        //$this->db->order_by('product.part_no');
        $query = $this->db->get_where($this->tableCategory);
        return $query->num_rows();
    }[/code]

kenapa ya gan kalau order by makai 'ASC' produk yang tampil selanjutnya sama seperti halaman 1 tapi kalau makai 'random' bisa  :hammer
help me gan  :((

Tanggapan

  • kira-kira salah dimananya ya master bingung ane nih :o
  • Coba kamu echo hasil query mau gak hasilnya saat klik page 1 dan seterusnya  $limit data sesuai dengan posisi data yang di panggil.

    Misal:
    $jml_data_per_page=12
    page 1 hasil querynya spt berikut:
    ->SELECT * ....... LIMIT 0,12

    Page 2 hasil querynya spt berikut
    >SELECT * ....... LIMIT 12,12

    Page 3 hasil querynya spt berikut
    >SELECT * ....... LIMIT 24,12

    dst.....

  • posisi data gak sesuai dengan data yg dipanggil mas, setiap saya klik page selanjutnya selalu yg muncul hasil query limit 0,12 dst atau data yg muncul dihalaman berikutnya sama saja seperti halaman 1  padahal kalau saya urutkan data yg ditampilkan secara random/di order_by rand() data tampil sesuai limit dan perhalamannnya normal 
  • Yang jelas salah di perhitungan $limit; Aku gak bgt mengerti dalam penggunaan class.
    Fungsi yang menuntukan limit yang mana?
    secara sederhana kalo dari coding kamu untuk menentukan $limit didapat dari perhitugan ($page-1) * $start

    Misalnya paging [1 2 3 ...]

    page 1 { SELECT * ... LIMIT 0,12} ->didapat dari (1-1) * 12 = 0
    page 2 { SELECT * ... LIMIT 12,12} ->didapat dari (2-1) * 12 = 12
    page 3 { SELECT * ... LIMIT 24,12} ->didapat dari (3-1) * 12 = 24

    Hasil dari perhitungan $limit yang aku kasi sample di atas seperti yang dicetak tebal. coba deh kamu manipulasi sdkt codingmu kemungkinan bisa terpecahkan...
  • itu kamu pake join di fungsi listProductPerCategory, order mu bingung itu field order by nya dari table mana, ada yang kurang itu tambahin sendiri
  • @dhryasa saya udah coba2 tetap gak bisa mas :o
    @gzai kalau itu sudah di tes mas tetep gak bisa, order by nya dari tabel product, di pakai product.part_no juga tetap gak bisa

    udah mentok nih :(
  • mana coba liat coding yang terbaru keseluruhan.
    lewat pastebin aja
  • ini link pastebinnya mas http://pastebin.com/LiwTAc6t
    masalahnya di order by nya itu kalau ('product.part_no','random') tiap diklik ke page berikutnya bisa tampil secara acak produknya, tapi kalau pakai ('product.part_no','ASC/DESC') kalau klik ke page berikutnya produknya yg tampil sama seperti page 1 seterusnya sampai halaman terakhir :o
    Terima kasih sebelumnya
  • coba kamu echo ini hasilnya bener gak? curiga segment page mu salah nangkep

    $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
  • @gzai hasilnya 0 mas saya echo uri segmentnya
  • di klik ke halaman lain jadi 0 juga? berarti salah target segment mu bukan 2
  • kalau di klik ke halaman berikutnya nilai bener mas 
    cuma produk yg tampil aja gak bener sama semua tiap halaman, per_page angkanya berubah sesuai halaman yg di klik

  • udah gak usah pake page_query_string =true,
    mudah pake standart config pagination aj
  • udah saya coba pakai pagination standart mas berhasil cuma ada masalah lagi :o
    ini koding saya yg baru http://pastebin.com/45fS2AiX
    masalahnya itu kalau saya klik halaman berikutnya produk yg tampil gak seluruh nya berubah misalnya gini mas halaman 1 yg tampil produk A,B,C,D,E,F,G nah waktu saya klik ke halaman 2 yg tampil produk D,E,F,G,H,I,J begitu seterusnya.
Sign In or Register to comment.