2013-03-24 85 views
2

我想把分頁放到我的CodeIgniter項目中。我仔細地按照說明,我還是設法參加表格,並顯示在我的「mahasiswa_view」,但是當我試圖把它與分頁結合,它說錯誤:codeigniter與連接表分頁

check on this error pic

這裏是我的控制器代碼= 「家」:

class Home extends CI_Controller 
{ 
function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('modelku'); 
} 

function index($offset = NULL) 
{ 
    //pagination 
    $limit = 3; 
    if(!is_null($offset)) 
    { 
     $offset = $this->uri->segment(3); 
    } 
    $this->load->library('pagination'); 
    $config['uri_segment'] = 3; 
    $config['base_url'] = site_url('home/index'); 
    $config['total_rows'] = $this->modelku->total_record_mahasiswa(); 
    $config['per_page'] = $limit; 
    $config['num_links'] = 5; 
    $config['first_link'] = 'First'; 
    $config['last_link'] = 'Last'; 
    $this->pagination->initialize($config); 

    //$data['mahasiswa']=$this->modelku->get_mahasiswa_all(); 
    $data['mahasiswa'] = $this->modelku->get_mahasiswa_all($limit,$offset); 
    $this->load->view('mahasiswa_view',$data); 
} 

這是我的型號代碼= 「modelku」:

if(!defined('BASEPATH')) exit('No direct script access allowed'); 

class Modelku extends CI_Model 
{ 
//pagination 
function total_record_mahasiswa() 
{ 
    return $this->db->count_all('tb_mahasiswa','tb_prodi'); 
    //return $this->db->count_all('tb_mahasiswa'); 
} 


function get_mahasiswa_all($limit,$offset) 
{ 
    $this->db->select('tb_mahasiswa.nim, tb_mahasiswa.nama, tb_mahasiswa.tanggal_lahir, 
      tb_mahasiswa.jenis_kelamin, tb_mahasiswa.alamat, tb_mahasiswa.propinsi, 
      tb_mahasiswa.telepon, tb_mahasiswa.email, tb_mahasiswa.photo, 
      tb_mahasiswa.prodi, 
      tb_prodi.namaprodi'); 
    $this->db->from('tb_mahasiswa'); 
    $this->db->join('tb_prodi','tb_mahasiswa.prodi=tb_prodi.kode'); 
    //$query = $this->db->get(); 
    $this->db->order_by('nim','ASC'); 
    //$query = $this->db->get('tb_mahasiswa','tb_prodi',$limit, $offset); 
    $query = $this->db->get($limit, $offset); 
    return $query->result(); 
} 

,最後一個,我的觀點= 'mahasiswa_view':

<!doctype html> 
<html> 
<head> 
    <title>PHP Framework</title> 
    <link rel="stylesheet" href="<?php echo base_url() ?>asset/css/style.css"/> 
</head> 

<body> 
    <h3>Selamat Datang di Form Mahasiswa</h3> 

    <table width="80%" border="1" > 

     <tr style="background-color:blue; color:white;"> 
      <td> No. </td> 
      <td> NIM </td> 
      <td> Nama </td> 
      <td> Tanggal Lahir </td> 
      <td> Jenis Kelamin </td> 
      <td width="20%"> Alamat </td> 
      <td> Telepon </td> 
      <td> Email </td> 
      <td> Prodi </td>  
      <td> Photo </td> 
     </tr> 


    <?php if(isset($msg_error)) 
     { 
      echo '<div style="color:red;">' . $msg_error.'</div>'; 
     } 
    ?> 
    <?php 
     echo anchor('home/login','Login'); 
     $no=1; 
     foreach ($mahasiswa as $row) 
     { 
    ?> 
     <tr> 
      <td><?php echo $no; ?></td> 
      <td><?php echo $row->nim . ' '; ?></td> 
      <td><?php echo $row->nama . ' '; ?></td> 
      <td><?php echo $row->tanggal_lahir . ' '; ?></td> 
      <td><?php echo $row->jenis_kelamin . ' '; ?></td> 
      <td><?php echo $row->alamat . ' '; ?></td> 
      <td><?php echo $row->telepon . ' '; ?></td> 
      <td><?php echo $row->email . ' '; ?></td> 
      <td><?php echo $row->namaprodi . ' ';?></td> 
      <td><?php echo $row->photo . ' </br>';?></td> 
     </tr> 

    <?php 
     $no++; 
     } 
    ?> 
    &nbsp 
    <form action="<?php print site_url();?>/home/cari" method=POST> 
     <input type=text name=cari> <input type=submit value="Cari"> 
    </form> 
</table> 

    <?php 
     echo "<br /><div>" .$this->pagination->create_links() ."</div>"; 
    ?> 
</body> 
</html> 

我還是CodeIgniter的新手,所以任何幫助,將不勝感激。

+0

運行代碼時得到的確切錯誤是什麼? – 2013-03-24 08:30:41

+0

@MehrdadDastgir:是不是在參考圖像?在這裏直接看到它會更好... – Anthon 2013-03-24 08:36:36

+0

@安娜問題被編輯,因爲我正在輸入我的評論,感謝您指出 – 2013-03-24 08:37:53

回答

2

你不能使用$query = $this->db->get($limit, $offset);$limit, $offset內的get()

$this->db->limit($limit, $offset); 
$query = $this->db->get(); 

使用這樣

+0

哇,人,謝謝它的工作完美... :) – 2013-03-24 13:17:38

+0

:)使用codeigniter的活動記錄api http://ellislab.com/codeigniter/user-guide/database/active_record.html – noelyahan 2013-03-24 14:23:36

+0

什麼是$ offset的用法? – Vincent 2013-11-05 06:49:10

0

由@Noel_Yahan提供的答案是正確的。但是,你說的那個問題到底是什麼?

Table 'db_kampus.3' does not exist 

可能是您使用某個第三方應用程序並且表[db_kampus.3]丟失。

嘗試安裝缺少的表並按照上述的答案,它應該工作。

+0

我不知道那個人,但我認爲這是分頁限制(3)。我的數據庫名稱是db_kampus ... – 2013-03-24 13:27:20

+0

@Mohammad Arif是'db_kampus.3'不存在,因爲Tirta John定義了$ limit = 3;如他的控制器和get()他解析$ limit,它試圖找到一個名爲'db_kampus.3'的表名'db_kampus'是他的數據庫名稱3是追加$ limit的值:) – noelyahan 2013-03-24 14:19:44

+0

是的你是對的@Noel_Yahan – 2013-03-24 17:19:12