|
|
|
การ saerch pagination codeigniter ทำยังไงขอคำแนะนำที |
|
|
|
|
|
|
|
ผมลอง แบ่งหน้า ตามวิดีโอของอาจารย์เนี้ยครับ
แต่อยาก ค้นหน้าข้อมูลแบบแบ่งหน้าอะครับไม่ทราบว่าต้องทำยังไง
อันนี้ส่วนของ controllter ครับ
Code (PHP)
<?php
class Member extends CI_Controller
{
public function __construct()
{
parent::__Construct();
}
public function index()
{
$this->load->library('pagination');
$config['base_url']=base_url()."index.php/member/index";
$config['per_page']=5;
$config['total_rows']=$this->db->count_all("tb_member");
$this->pagination->initialize($config);
$data['rs']=$this->db->select("member_id,member_name,member_tel")
->from("tb_member")->limit($config['per_page'],$this->uri->segment(3))->get()->result_array();
$this->load->view("member/index",$data);
/* โค๊ดเดิม
$this->db->select("member_id,member_name,member_tel");
$this->db->from("tb_member");
$this->db->where($ar);
$rs = $this->db->get();
*/
/*chaining*/
/*$this->db->select("member_id,member_name,member_tel")->from("tb_member")->where($ar);
$rs = $this->db->get();
*/
/*chaining 2
$rs=$this->db->select("member_id,member_name,member_tel")->from("tb_member")->where($ar)->get();
$data['rs'] = $rs->result_array();
*/
/*chaining 3*/
}
public function add()
{
if($this->input->post("btsave")!=null)
{
$ar = array(
"member_name"=>$this->input->post("member_name"),
"member_tel"=>$this->input->post("member_tel"),
"member_address"=>$this->input->post("member_address")
);
$this->db->insert("tb_member",$ar);
redirect("member","refresh");
exit();
}
$this->load->view("member/add");
}
public function edit($member_id)
{
if($this->input->post("btsave")!=null)
{
$ar = array(
"member_name"=>$this->input->post("member_name"),
"member_tel"=>$this->input->post("member_tel"),
"member_address"=>$this->input->post("member_address")
);
$this->db->where("member_id",$member_id);
$this->db->update("tb_member",$ar);
redirect("member","refresh");
exit();
}
$sql = "Select * from tb_member where member_id = '$member_id'";
$rs = $this->db->query($sql);
if($rs->num_rows()==0)
{
$data['rs']=array();
}
else
{
$data['rs']=$rs->row_array();
}
$this->load->view("member/edit",$data);
}
public function del($member_id)
{
$this->db->delete("tb_member",array("member_id" => $member_id));
redirect("member","refresh");
exit();
}
}
?>
อันนี้ส่วน view ครับ
Code (PHP)
<!DOCTYPE HTML>
<head>
<meta charset="utf-8">
<title>MEMBER</title>
</head>
<body>
<h1>แสดงข้อมูล</h1>
<?php echo anchor("member/add","เพิ่มข้อมูล");?>
<table border="1">
<thead>
<tr>
<td>ลำดับ</td>
<td>ชื่อ นามสกุล</td>
<td>เบอร์โทรศัพท์</td>
<td>ปรับแต่ง</td>
</tr>
<tbody>
<?php
if(count($rs)==0)
{
echo "<tr><td colspan='4' aglin='center'> no data </td></tr>";
}
else
{
$no = $this->uri->segment(3)+1;
foreach($rs as $r)
{
echo "<tr>";
echo "<td align='center'> $no</td>";
echo "<td>".$r['member_name']."</td>";
echo "<td>".$r['member_tel']."</td>";
echo "<td align='center'>";
echo anchor("member/edit/".$r['member_id'],"แก้ไข")." ";
echo anchor("member/del/".$r['member_id'],"ลบ",
array("onclick"=>"javascript:return confirm('คุณต้องการลบหรือไม่?');"));
$no++;
echo "</td>";
echo "</tr>";
}
}
?>
</tbody>
</table>
<?php echo $this->pagination->create_links();?>
</body>
</html>
รบกวนด้วยนะครับ
Tag : PHP, CodeIgniter Framework
|
|
|
|
|
|
Date :
2015-12-03 16:47:58 |
By :
sarun09945282xx |
View :
1725 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็ไม่เก่งอะไรมากนะครับ ออกตัวไว้ก่อน แต่ผมเคยใช้ตัวนึง ได้จากที่นี่แหละ
ปล.จากตัวอย่างของคุณเองน่าจะเขียนด้วย MySQLi แล้วด้วยซึ่งผมยังไม่คุ้นเคยเลยเนี้ยสิ แต่ลองดูรูปแบบเดิม ๆ แล้วไปอ่านปรับแก้ไขกับของคุณดูก็ได้ครับ
Code (PHP)
<body>
<?
$_POST["list"] = $_REQUEST["list"];
$_POST["txtbox"] = $_REQUEST["txtbox"];
$userSQL = "SELECT * FROM member WHERE (rang ='TEACHER' OR rang ='PK') AND 1 ";
if($_POST["list"] !="")
{
if($_POST["list"]=="IDstd")
{
$userSQL .= " AND (IDstd LIKE '%".$_POST["txtbox"]."%') ";
$userQ = mysql_query($userSQL);
$Num = mysql_num_rows($userQ);
if($Num==0){ echo "<script type='text/javascript'>alert('ไม่มีข้อมูลทีค้นหา')</script>"; }
}
elseif($_POST["list"]=="name")
{
$userSQL .= " AND (fname LIKE '".$_POST["txtbox"]."%' OR lname LIKE '".$_POST["txtbox"]."%') ";
$userQ = mysql_query($userSQL);
$Num = mysql_num_rows($userQ);
if($Num==0){ echo "<script type='text/javascript'>alert('ไม่มีข้อมูลทีค้นหา')</script>"; }
}
else
{
$classroom = explode("/", $_POST["txtbox"]);
$class = $classroom[0];
$room = $classroom[1];
if($class!="" && $room=="")
{
$userSQL .= " AND (class = '$class') ";
$userQ = mysql_query($userSQL);
$Num = mysql_num_rows($userQ);
if($Num==0){ echo "<script type='text/javascript'>alert('ไม่มีข้อมูลทีค้นหา')</script>"; }
}
else
{
$userSQL .= " AND (class = '$classroom[0]' AND room = '$classroom[1]') ";
$userQ = mysql_query($userSQL);
$Num = mysql_num_rows($userQ);
if($Num==0){ echo "<script type='text/javascript'>alert('ไม่มีข้อมูลทีค้นหา')</script>"; }
}
}
}
$userQuery = mysql_query($userSQL);
//เริ่มต้นโค้ดแบ่งหน้า
$Num_Rows = mysql_num_rows($userQuery);
$Per_Page = 50; // Per Page จำนวนที่ต้องการให้แสดงต่อหน้า
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
$strSort = $_GET["sort"];
if($strSort == "")
{
$strSort = "IDstd"; //แก้
}
$strOrder = $_GET["order"];
if($strOrder == "")
{
$strOrder = "ASC";
}
$userSQL .=" order by ".$strSort." ".$strOrder." LIMIT $Page_Start , $Per_Page"; //แก้
$userQuery = mysql_query($userSQL); //แก้
$strNewOrder = $strOrder == 'DESC' ? 'ASC' : 'DESC';
?>
<table border="0" align="center" cellpadding="3" cellspacing="1" class="tableraduis">
<tr>
<td><table border="0" align="center" cellpadding="3" cellspacing="1" class="simply">
<thead>
<tr>
<th colspan="5" align="left">: : List of Teachers : :</th>
<th align="right"><div id="opa"><a id="ADD" href="tea_add.php?&list=<?=$_REQUEST["list"];?>&txtbox=<?=$_REQUEST["txtbox"];?>&sort=<?=$_REQUEST["sort"];?>&order=<?=$strNewOrder?>" class="fancybox" title="เพิ่มรายชื่อใหม่"><img src="images/add.png" width="32" height="32" /></a></div></th>
</tr>
<tr>
<th colspan="6" align="left">
<form id="memberlist" name="memberlist" method="post" action="" OnSubmit="return fncSubmit();">
ค้นหาโดย
<label>
<select name="list" id="list" class="textbox" style="width:110px; height:35px;">
<option value="select" selected="selected">---เลือก----</option>
<option value="IDstd" <? if($_POST["list"]=="IDstd"){echo"selected";}?>>เลขประจำตัว</option>
<option value="name" <? if($_POST["list"]=="name"){echo"selected";}?>>ชื่อ-นามสกุล</option>
<option value="classroom" <? if($_POST["list"]=="classroom"){echo"selected";}?>>ชั้น/ห้อง</option>
<option value="status" <? if($_POST["list"]=="status"){echo"selected";}?>>สถานะปัจจุบัน</option>
</select>
</label>
สิ่งที่ต้องการค้นหา
<label>
<input type="text" name="txtbox" id="txtbox" class="textbox" style="width:150px;" value="<? if($_POST["txtbox"]!=""){$text= $_POST["txtbox"]; echo $text;}?>" autocomplete="off" />
</label>
<label>
<input name="Submit" type="submit" class="Button" id="Submit" value="ค้นหา" />
</label>
</form></th>
</tr>
<tr>
<th colspan="6" align="left"><div class="Pagingtext">
ทั้งหมด <?= $Num_Rows;?> รายชื่อ : จำนวน <?=$Num_Pages;?> หน้า :
<?
$Page1 = $Page-2;
$Page2 = $Page+2;
if($Prev_Page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
}
for($i=1; $i<=$Num_Pages; $i++)
{
if($i != $Page && $i >= $Page1 && $i <= $Page2)
{
echo "<a class='Pagingnow' href='$_SERVER[SCRIPT_NAME]?Page=$i&list=".$_POST['list']."&txtbox=".$_POST['txtbox']."&sort=$strSort&order=$strOrder'>$i</a>";
}
elseif($i==$Page)
{
echo "<a class='Paging' href='$_SERVER[SCRIPT_NAME]?Page=$i&list=".$_POST['list']."&txtbox=".$_POST['txtbox']."&sort=$strSort&order=$strOrder'>$i</a>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
}
?></div></th>
</tr>
<tr align="center">
<th class="textpage"><a href="<?=$_SERVER["SCRIPT_NAME"];?>?sort=IDstd&order=<?=$strNewOrder?>&list=<?=$_POST['list']?>&txtbox=<?=$_POST['txtbox']?>">เลขประจำตัว</a></th>
<th class="textpage"><a href="<?=$_SERVER["SCRIPT_NAME"];?>?sort=fname&order=<?=$strNewOrder?>&list=<?=$_POST['list']?>&txtbox=<?=$_POST['txtbox']?>">ชื่อ-นามสกุล</a></th>
<th class="textpage"><a href="<?=$_SERVER["SCRIPT_NAME"];?>?sort=class&order=<?=$strNewOrder?>&list=<?=$_POST['list']?>&txtbox=<?=$_POST['txtbox']?>">ที่ปรึกษาชั้น/ห้อง</a></th>
<th class="textpage"><a href="<?=$_SERVER["SCRIPT_NAME"];?>?sort=status&order=<?=$strNewOrder?>&list=<?=$_POST['list']?>&txtbox=<?=$_POST['txtbox']?>">สถานะปัจจุบัน</a></th>
<th colspan="2" class="textpage"> </th>
</tr>
</thead>
<?
while($userResult = mysql_fetch_array($userQuery))
{
?>
<tr>
<td align="center"><?=$userResult["IDstd"]; ?></td>
<td align="center"><?=$userResult["fname"]; ?>
<?=$userResult["lname"]; ?></td>
<td align="center"><?=$userResult["class"]; ?>
/
<?=$userResult["room"]; ?></td>
<td align="center">
<?
$statusSQL = "SELECT * FROM status_user ORDER BY statusID ASC";
$statusQu = mysql_query($statusSQL);
while($statusResult = mysql_fetch_array($statusQu))
{
if($userResult["status"] == $statusResult["Name"]){
echo $statusResult["DesTH"];
}
}
?> </td>
<td align="right"><div id="opa"><a id="EDIT" href="tea_edit.php?IDstd=<?=$userResult["IDstd"];?>&list=<?=$_REQUEST["list"];?>&txtbox=<?=$_REQUEST["txtbox"];?>&sort=<?=$_REQUEST["sort"];?>&order=<?=$strNewOrder?>" class="fancybox" title="แก้ไขข้อมูลของ <?=$userResult["Prefix"]; ?><?=$userResult["fname"]; ?> <?=$userResult["lname"]; ?>"><img src="images/edit.png" width="32" height="32" border="0" /></a></div></td>
<td align="left"><div id="opa"><a id="DEL" href="del_user.php?IDstd=<?=$userResult["IDstd"];?>&list=<?=$_REQUEST["list"];?>&txtbox=<?=$_REQUEST["txtbox"];?>&sort=<?=$_REQUEST["sort"];?>&order=<?=$strNewOrder?>" class="fancybox" title="ลบข้อมูลของ <?=$userResult["Prefix"]; ?><?=$userResult["fname"]; ?> <?=$userResult["lname"]; ?>"><img src="images/del.png" width="32" height="32" border="0" /></a></div></td>
</tr>
<?
}
?>
</table>
</td>
</tr>
</table>
<?
mysql_close();
?>
</body>
หน้าแสดง
แต่พอดีว่าข้อมูลยังน้อยนะครับ แต่แบ่งหน้าได้ ลดจำนวนหน้าด้วย แบบ แสดง 1 2 3 4 ..... 17 18 19 20 อะไรแบบนี้
คงการค้นหาไว้ด้วยแม้จะกดเปลี่ยนหน้า
|
ประวัติการแก้ไข 2015-12-03 19:32:07
|
|
|
|
Date :
2015-12-03 19:26:42 |
By :
akkaneetha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ
|
|
|
|
|
Date :
2015-12-03 23:24:36 |
By :
sarun09945282xx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|