-
lsepolis123 Junior Member
 
-
Posts: 39
Threads: 8
Joined: Jan 2018
Reputation:
0
06-29-2018, 11:56 PM
(This post was last modified: 06-29-2018, 11:57 PM by lsepolis123.)
can you help... in Pagination I modified View and Controller function - I read some paragraphs from >>>
https://www.codeigniter.com/userguide3/l...ation.html
I am getting something like > // echo $this->pagination->create_links(); // this i inserted in View
‹ First<234
I plan to apply CSS3 but the problem is these all urls the DATA is the same ARE ALL 7 ROWS ALWAYS... AND NOT 2 PER PAGE // I PUT TWO 2 TO TEST IT
http://localhost/repos/.../admin/videos/all/
http://localhost/repos/.../admin/videos/all/2
http://localhost/repos/.../admin/videos/all/4
http://localhost/repos/.../admin/videos/all/6
WELL???
controller
PHP Code: public function all() {
// Pagination from https://www.codeigniter.com/userguide3/libraries/pagination.html $this->load->library('pagination');
$config['base_url'] = 'http://localhost/repos/.../admin/videos/all/';
$config['enable_query_strings'] = TRUE;
$data['videos'] = $this->Video_model->get_list_public();
$subject_options = array(); $subject_options[0] = 'Select Subject';
$subject_list = $this->Subject_model->get_list(16); // $this->user_id foreach ($subject_list as $subject) { $subject_options[$subject->id] = $subject->name; }
$data['subject_options'] = $subject_options;
$config['total_rows'] = count($data['videos']); $config['per_page'] = 2; $this->pagination->initialize($config); //echo $this->pagination->create_links();
// Load Template $this->template->load('admin', 'default', 'videos/all', $data); }
view
PHP Code: <tr> <td><?php echo $video->id; ?></td> <td><a class="fancybox fancybox.iframe" href="http://www.youtube.com/embed/<?php echo $video->youtube_url; ?>"><img src="https://img.youtube.com/vi/<?php echo trim($video->youtube_url); ?>/0.jpg" style="width: 150px;"><br><?php echo $video->title; ?></a></td> <td><?php echo $subject_options[$video->subject_id]; ?></td> <td><?php echo $video->youtube_published_year; ?></td> <td><?php echo $formatted_date; ?></td> <td> <?php echo anchor('admin/videos/view/'.$video->id.'', 'View', 'class="btn btn-primary"'); ?> </td> </tr> <?php endforeach; ?> </table>
<?php echo "<div id='paginationCI'>".$this->pagination->create_links()."</div>"; ?>
<?php else: ?>
<p>No videos</p>
<?php endif; ?>
-
jreklund Administrator
      
-
Posts: 1,408
Threads: 3
Joined: Aug 2017
Reputation:
43
06-30-2018, 01:54 AM
(This post was last modified: 06-30-2018, 01:56 AM by jreklund.)
You need to add limit and offset to your SQL query.
https://www.codeigniter.com/userguide3/d...ilder::get
https://www.codeigniter.com/userguide3/d...der::limit
In case you want to cheat.
PHP Code: // Controller public function page() { $this->load->library('pagination'); $config['base_url'] = base_url('admin/ads/page'); $config['total_rows'] = $this->db->count_all('ads'); $config['per_page'] = 50; $config['uri_segment'] = 4; // You may need to change this $this->pagination->initialize($config); // You need to change segment(4,1) so it's matching the same number as your uri_segment $offset = (intval($this->uri->segment(4,1))*$config['per_page'])-$config['per_page']; $this->data['ads'] = $this->ads_model->get_all_ads($config['per_page'],$offset); $this->load->view('admin/ads/list',$this->data); }
// Model public function get_all_ads($limit,$offset) { $this->db->order_by('company', 'ASC'); $query = $this->db->get('ads',$limit,$offset); return $query->result(); }
// application/config/pagination.php - Default setttings <?php defined('BASEPATH') OR exit('No direct script access allowed');
$config['use_page_numbers'] = TRUE; $config['full_tag_open'] = '<nav aria-label="Page navigation"><ul class="pagination">'; $config['full_tag_close'] = '</ul></nav>'; $config['prev_link'] = 'Prev.'; $config['next_link'] = 'Next'; $config['first_link'] = FALSE; $config['last_link'] = FALSE;
$config['next_tag_open'] = '<li>'; $config['next_tag_close'] = '</li>';
$config['prev_tag_open'] = '<li>'; $config['prev_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li><span>'; $config['cur_tag_close'] = '</span></li>';
$config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; $config['num_links'] = 4;
-
lsepolis123 Junior Member
 
-
Posts: 39
Threads: 8
Joined: Jan 2018
Reputation:
0
06-30-2018, 06:17 AM
(This post was last modified: 06-30-2018, 06:18 AM by lsepolis123.)
Thank you for your assistance
1
So Model edit required... and also this 'ASC'); can be ('id', 'DESC'); .. ? // in model without error?
PHP Code: // Model public function get_all_ads($limit,$offset) { $this->db->order_by('company', 'ASC'); $query = $this->db->get('ads',$limit,$offset); return $query->result(); }
2
also the file
// application/config/pagination.php - Default setttings
Not exist - but when created Code-igniter take use immediately everywhere Pagination exist? correct?
-
lsepolis123 Junior Member
 
-
Posts: 39
Threads: 8
Joined: Jan 2018
Reputation:
0
06-30-2018, 07:38 AM
(This post was last modified: 07-01-2018, 12:50 AM by lsepolis123.)
$config['total_rows'] = $this->db->count_all('ads');
needed two queries the first to get how many are all videos - rows??? how ^^ this work???
https://www.codeigniter.com/userguide3/d...:count_all
according to this ^^^ gets all rows of table but i want Only public[field public=1] videos count [exist and private[field public=0]] what to do????
-
lsepolis123 Junior Member
 
-
Posts: 39
Threads: 8
Joined: Jan 2018
Reputation:
0
$config['total_rows'] = $this->db->count_all('videos', 'public=1');
how can count - if have pagination and limit / offset, all videos in table currently having public=1(public is a table field can be 1 or 0)...???
-
lsepolis123 Junior Member
 
-
Posts: 39
Threads: 8
Joined: Jan 2018
Reputation:
0
07-03-2018, 02:47 AM
(This post was last modified: 07-03-2018, 02:47 AM by lsepolis123.)
PHP Code: isset($config['total_rows']) ? '' : ($config['total_rows'] = $this->db->where('public',1)->count_all('videos')) ;
This is valid so as total_rows calc only if Not isset????
|