2010-12-04 16 views
1

Ok ich gelernt, wie man mit codeigniter zu tun Paginierung, aber was ich bin stecken auf, wie integrieren Sie so etwas wie:Codeigniter-> mit Paginierung mit SQL wählen

$this->db->query("Select * FROM film_list WHERE category = 'documentary'); 

Wie erhalte ich die Paginierung nur die obigen Daten zurückgeben? Ich möchte nicht alle Daten in der Tabelle nur eine bestimmte Kategorie zurückgeben.

function start() 
{ 
    $config['base_url'] = 'http://localhost/sakila/index.php/site/start/'; 
    $config['total_rows'] = $this->db->get('film_list')->num_rows(); 
    $config['per_page'] = '10'; 
    $config['num_links'] = '20'; 
    $config['full_tag_open'] = '<div id="pagination">'; 
    $config['full_tag_close'] = '</div>'; 


    $data['main_content'] = "start"; 
    $data['records'] = $this->db->get('film_list', $config['per_page'], 
             $this->uri->segment(3)); 
    $this->pagination->initialize($config); 
    $this->load->view('includes/template', $data); 
    echo $this->pagination->create_links();} 

Ich habe so weit gekommen und es funktioniert, zieht alle Daten aus der SQL-Tabelle in die HTML-Tabelle einfügt und es paginiert richtig, ich will es nur auf eine bestimmte Kategorie.

Hier ist die Ansicht, wenn es hilft.

<div id="main"> 
    <h1>Documentaries</h1> 
    <?php 
    echo $this->table->generate($records); 
    echo $this->pagination->create_links(); 
    ?> 
</div> 

Antwort

1

Sie müssen die WHERE-Klausel hinzufügen. Anstatt nur:

$data['records'] = $this->db->get('film_list', $config['per_page'], 
             $this->uri->segment(3)); 

Probieren Sie etwas wie folgt aus:

$this->db->where('category','documentary'); 
$data['records'] = $this->db->get('film_list', $config['per_page'], 
             $this->uri->segment(3)); 
+0

Thanks a lot !!!, wie ein Zauber gearbeitet, ich habe alles, aber das wollte, wusste ich, es für die etwas einfach ..... –

2

Hoffnung dieser Code wird Ihnen helfen.

<?php 
//CONTROLLER 

$qry = "Select * FROM film_list WHERE category = 'documentary"; 

$limit = 10; 
$offset = ($this->uri->segment(3) != '' ? $this->uri->segment(3):0); 

$config['base_url'] = 'http://localhost/sakila/index.php/site/start/'; 
$config['total_rows'] = $this->db->query($qry)->num_rows(); 
$config['uri_segment'] = 3; 
$config['per_page'] = $limit; 
$config['num_links'] = 20; 
$config['full_tag_open'] = '<div id="pagination">'; 
$config['full_tag_close'] = '</div>'; 

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

$qry .= " limit {$limit} offset {$offset} "; 

$data['result_per_page'] = $this->db->query($qry)->result(); 

$this->load->view('includes/template', $data); 

für Ihre Ansicht ..

<div id="main"> 
    <h1>Documentaries</h1> 
    <?php 
     foreach($result_per_page as $row) 
    { 
    echo $row->column_to_show; //display result to your databse.column_to_show is just a dummy column name of the query result 
    } 

     echo $this->pagination->create_links(); 
    ?> 
</div> 
+1

leid ist Ausrichtung – Orvyl