0

こんにちは私はcodeigniterを初めて使用し、プロジェクトでページ付け関数を作成しようとしていますが、ページ付けがページを変更していないことを除いて、すべてが機能しているように見えます。何が悪いのか誰もが私を助けることができますか?これが私のコードです:

コントローラ

class Result_controller extends CI_Controller{

    function getall(){

        $this->load->model('result_model');
        $data['query'] = $this->result_model->result_getall();
        // print_r($data['query']); die();


        $this->load->library('pagination');

        $config['base_url'] = 'http://localhost/Surva/index.php/result_controller/getall';
        $config['total_rows'] = $this->db->get('tblanswers, credentials')->num_rows();
        $config['per_page'] = 1;
        $config['num_links'] = 10;
        $config['uri_segment'] = 3;

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

        $data['records'] = $this->Result_model->result_getall($config['per_page'], $this->uri->segment(3));
        $data['pagination'] = $this->pagination->create_links();
        $this->load->view('result_view', $data);

モデル

       function result_getall(){

  $this->db->select('tblanswers.*,credentials.*');
  $this->db->from('tblanswers');
  $this->db->join('credentials', 'tblanswers.answerid = credentials.cid', 'LEFT'); 
  $query = $this->db->get();
  return $query->result();

    }

見る

<?php foreach ($query as $row): ?> 
     <tr>      
         <td><?php echo $row->name; ?></td>
         <td><?php echo $row->second_name; ?></td>
         <td><?php echo $row->phone; ?></td>
         <td><?php echo $row->email; ?></td>
          <td> <?php echo $row->answerA;?>
           <?php echo $row->answerB;?>
           <?php echo $row->answerC;?></td>
         <td><?php echo $row->comment;?><br></td>

     </tr>

      <?php endforeach; ?>

     </table>  
     <?php if (isset($pagination))
      {
       echo $pagination;
      // echo "<pre>"; var_dump($query);
       } 
      ?>       
4

3 に答える 3

1

これを試してください:
このパーツをコントローラーに追加します

$page = $this->uri->segment(3);
if($page == '')
{
    $page = 1;
}

この行を変更します

$data['records'] = $this->db->get('tblanswers, credentials', $config['per_page'], $page)->result_array();

編集:モデルを変更します:

function result_getall()
{

    $this->db->select('tblanswers.*,credentials.*');
    $this->db->from('tblanswers');
    $this->db->join('credentials', 'tblanswers.answerid = credentials.cid', 'LEFT'); 
    $query = $this->db->get();
    //return $query->result();
    echo $this->db->last_query();

}
于 2013-03-07T07:28:43.053 に答える
0

コントローラ:

 function getall()
 {

    $this->load->model('result_model');
    $data['query'] = $this->result_model->result_getall();

    $this->load->library('pagination');

    $config['base_url'] = 'http://localhost/Surva/index.php/result_controller/getall';
    $config['total_rows'] = $this->db->get('tblanswers, credentials')->num_rows();
    $config['per_page'] = 2;
    $config['num_links'] = 5;
    $config['uri_segment'] = 3;
    $this->pagination->initialize($config);
    /*
    CHANGE $this->YOURMODELNAME-> to the name of the model
    */
    $data['records'] = $this->YOUMODELNAME->result_getall($config['per_page'], $this->uri->segment(3));
    $data['pagination'] = $this->pagination->create_links();
    $this->load->view('result_view', $data);
}

モデル:

function result_getall($perPage, $page)
{

    $this->db->select('tblanswers.*,credentials.*');
    $this->db->from('tblanswers');
    $this->db->join('credentials', 'tblanswers.answerid = credentials.cid', 'LEFT'); 
    $this->db->limit($perPage, $page);
    $query = $this->db->get();
    return $query->result();

}

変更する必要のある部分を大文字にしました。これがうまくいくかどうか教えてください

于 2013-03-07T08:23:21.477 に答える
0

SQLクエリで制限関数を使用します。たとえば、SQLクエリ制限0,10で最初に使用するページに10レコードを表示する場合

于 2013-03-07T13:20:15.673 に答える