Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > วิธีการเขียนแบ่งหน้าเพจ ด้วย PHP Codeigniter ทำยังไงอ่ะค่ะ



 

วิธีการเขียนแบ่งหน้าเพจ ด้วย PHP Codeigniter ทำยังไงอ่ะค่ะ

 



Topic : 066396



โพสกระทู้ ( 85 )
บทความ ( 0 )



สถานะออฟไลน์




ใครพอมี Code พออธิบายได้เป่าค่ะว่าเขียนยังไงอ่ะค่ะ แบบว่าให้หน้า 1 แสดงข้อมูลประมาณ 20 record แล้วสามารถคลิกปุ่ม next เพื่อไปดูหน้าทันไปได้ด้วยอ่ะค่ะ ยังอ่อนหัดมากๆ แล้วก้องงๆๆ เพราะไม่เคยเขียนแต่อยากลองทำดู ใครพอรู้ช่วยชี้แน่ะด้วยน่ะค่ะ ขอบคุณค่ะ ...



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-09-12 13:44:28 By : nidnoiiz View : 6926 Reply : 10
 

 

No. 1



โพสกระทู้ ( 564 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

เอาแบบ ง่าย ๆ เลยนะ

// Controller
class Main extends CI_Controller
{
 public function __construct()
 {
   parent::__construct();
   $this->load->library('pagination'); // ไลบารี่ใช้ทำ pagination 1 2 3 4 5 
 }
 public function index()
 {
   // ให้หน้านี้เป็น หน้าเริ่มต้นครับ
  
   $sql="Select * from tb_user Order by id desc limit 0,20";  // เรียง มาก 20 อันแรกก่อน
   $rs=$this->db->query($sql);
   $data['rs']=$rs->result_array(); // query เอาไปแสดง

   $config['base_url'] = base_url()."main/page/"; // ส่วนนี้ จะเป็น link ว่า จะให้ไปที่หน้าไหน ซึ่งเราจะให้ไปที่ method page ด้านล่าง
   $config['total_rows'] = $this->db->count_all("tb_user"); // ส่วนนี้ จะนับว่า ฟิว ทั้งหมดที่อยู่ใน tb_user มีเท่าไหร่
   $config['per_page'] = '20'; // ให้แสดงหน้าละจำนวนเท่าไหร่
   $this->pagination->initialize($config);   // จากกนั้น เอาค่า ไป config ใน object pagination ที่เรา load มา
  
   $this->load->view("main/index",$data); // load view index 
 }
 public function page($page=0) // กำหนดค่าเริ่มต้นที่ 0
 {
   $sql="Select * from tb_user Order by id desc limit $page,20";  เริ่มต้นจาก $page ที่ส่งมา
   $rs=$this->db->query($sql);
   $data['rs']=$rs->result_array();

   $config['base_url'] = base_url()."main/page/"; // ส่วนนี้ จะเป็น link ว่า จะให้ไปที่หน้าไหน ซึ่งเราจะให้ไปที่ method page ด้านล่าง
   $config['total_rows'] = $this->db->count_all("tb_user"); // ส่วนนี้ จะนับว่า ฟิว ทั้งหมดที่อยู่ใน tb_user มีเท่าไหร่
   $config['per_page'] = '20'; // ให้แสดงหน้าละจำนวนเท่าไหร่
   $this->pagination->initialize($config);   // จากกนั้น เอาค่า ไป config ใน object pagination ที่เรา load มา

    $this->load->view("main/index",$data); // load view index  เพราะใช้ ข้อมูลชุดเดียวกัน

 }
}


ส่วน View ชื่อ index.php อยู่ใน main

<?php
if(count($rs)==0)
{
  echo"no data";
}
else
{
  $i=$this->uri->segment(3); // เอามานับว่า อยุ่ ลำดับที่เท่าไหร่
  $no=empty($i)?1:$i;
  foreach($rs as $r)
  {
    echo"ลำดับที่ $no : รหัส".$r['user_id'];
    $no++;
  }
}
?>
<p>หน้าที่ <?php echo $this->pagination->create_links(); // เป็น ตัว generate pagination ให้เราเองอัตโนมัติ?><p>



ลองดูครับ

ตัวอย่าง

1
2








ประวัติการแก้ไข
2011-09-12 14:31:33
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-12 14:25:22 By : kalamell
 


 

No. 2



โพสกระทู้ ( 85 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณเด่วกำลังลองทำดูค่ะ เด่วติดตรงไหนเด่วมาถามน่ะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-12 14:37:14 By : nidnoiiz
 

 

No. 3

Guest


แง่ว ยังทำไม่ได้เลยค่ะ คือจะถามว่า พอดีไม่ได้ให้มันโชว์ข้อมูลหน้าแรกอ่ะค่ะ แต่ให้มันแบ่งเพจหน้าอื่น จะถามว่าถ้าเราสร้าง Function ขึ้นมาใหม่ใน Controller ได้หรือเป่าค่ะ แต่ไม่ได้สร้างใน หน้า Main อ่ะค่ะ มันน่าจะได้ไหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-12 15:48:16 By : nidnoiiz
 


 

No. 4



โพสกระทู้ ( 85 )
บทความ ( 0 )



สถานะออฟไลน์


ยังทำไม่ได้คะ เรียกตรงหน้า View มันไม่รู้จัก ตัวแปร rs
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 09:43:20 By : nidnoiiz
 


 

No. 5



โพสกระทู้ ( 564 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

$data['rs']=$rs->result_array(); นี่ยังไงหล่ะครับ query คุณเป็นอะไรหล่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 11:19:43 By : kalamell
 


 

No. 6



โพสกระทู้ ( 85 )
บทความ ( 0 )



สถานะออฟไลน์


Query ดึงมาจาก Model อ่ะค่ะไม่ได้ Query ตรงๆๆ ใน Controller แบบตัวอย่างที่คุณให้มา ที่นี้มันแสดงผลแบบนี้อ่ะค่ะ
piz
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 13:24:40 By : nidnoiiz
 


 

No. 7



โพสกระทู้ ( 564 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

เอาโค้ดเต็ม ๆ มาให้ ดูเลยดีกว่าครับ ทั้ง controller และ model ที่ผมทำให้ ดู เพื่อให้ง่ายต่อการดูครับ แล้วลองตามแบบ ผมหรือยังหล่ะ ???
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 14:04:01 By : kalamell
 


 

No. 8



โพสกระทู้ ( 85 )
บทความ ( 0 )



สถานะออฟไลน์


หายไปนานมากคะ่โทดที พอดีติดงานอย่างอื่นต้องทำก่อน วันนี้ลองแก้แล้วคะ่แสดงผลได้น่ะ แต่ติดปัญหาตรงที่ว่า ใช้ดาต้าเบสของ Microsoft SQL Server อ่ะค่ะ แล้วมันใช้ คำสั่ง Limit ไม่ได้มันเลยแสดงผลแปลกๆๆ อยากให้คุณ U ช่วยดูโค้ดให้หน่อยค่ะ ขอบคุณน่ะค่ะ


Controller :

Code
function view_user()
		{
			$this->load->library('pagination');

			$sql="SELECT TOP 5* FROM tb_user order by id_user;";  
			$rs=$this->db->query($sql); 
			$data['rs']=$rs->result_array(); 
			
			$link_page = site_url().'/admin_all/page';
			$config['base_url'] = $link_page;  
			$config['total_rows'] = $this->db->count_all("tb_user");
			$config['per_page'] = '5'; 
			$config['next_link'] = 'ถัดไป';
			$config['prev_link'] = 'ก่อนหน้า';
			$config['first_link'] = 'หน้าแรก';
			$config['last_link'] = 'หน้าสุดท้าย';
			$this->pagination->initialize($config); 
			
			$this->load->view("view_u99.php",$data);
		}

		public function page($page=0) 
		{ 
			echo $page;
			$this->load->library('pagination');
			$sql="WITH qy AS
				 (SELECT ROW_NUMBER() OVER (ORDER BY [id_user]) AS [Row_No],*FROM [tb_user]) 
				  SELECT * FROM qy WHERE [Row_No] BETWEEN $page AND 10;";  
			$rs=$this->db->query($sql); 
			$data['rs']=$rs->result_array(); 
 
			$link_page = site_url().'/admin_all/view_user';
			$config['base_url'] = $link_page; 
			$config['total_rows'] = $this->db->count_all("tb_user");  
			$config['per_page'] = '5'; 
			$config['next_link'] = 'ถัดไป';
			$config['prev_link'] = 'ก่อนหน้า';
			$config['first_link'] = 'หน้าแรก';
			$config['last_link'] = 'หน้าสุดท้าย';
			$this->pagination->initialize($config);    
 
			$this->load->view("view_u99.php",$data); 
		}[/code]

View :
Code
[php] <?php 
		if(count($rs)==0) 
		{ echo"no data"; } 
		else
		{ 

			$i=$this->uri->segment(5); // เอามานับว่า อยุ่ ลำดับที่เท่าไหร่ 
			$no=empty($i)?1:$i; 

			foreach($rs as $r) 
		{ 
			echo"-".$r['fname']; 
		$no++; 
		} 

		} 
?> 
<p>หน้าที่ <?php echo $this->pagination->create_links();
?>

*** นิคิดว่าน่าจะติดปัญหาตรง Query นี้และค่ะ ช่วยดูให้ด้วยน่ะค่ะ 

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-30 13:33:15 By : nidnoiiz
 


 

No. 9



โพสกระทู้ ( 85 )
บทความ ( 0 )



สถานะออฟไลน์


- -" ใครก้อได้พอรู้ช่วยทีค๊าาาาา ~~~~~
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-01 08:56:24 By : nidnoiiz
 


 

No. 10

Guest


$this->load->library('pagination'); เขียนอะไรไว้บ้างค่ะ อยากดูโค้ดจังเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-16 14:30:21 By : แพน
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : วิธีการเขียนแบ่งหน้าเพจ ด้วย PHP Codeigniter ทำยังไงอ่ะค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่