|
|
|
สอบถามเรื่่อง Search แบบหลายเงือนไข และ Pagination |
|
|
|
|
|
|
|
คุณจะต้องส่งค่าทุก ๆ อย่าไปด้วยครับ
|
|
|
|
|
Date :
2012-10-11 17:04:50 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่ครับ คุณอาจจะเปรียบเทียบค่าด้วยครับว่ามันเป็น $_POST หรือ $_GET
ทุก ๆ อย่างใช้ if ได้หมดครับ
|
|
|
|
|
Date :
2012-10-11 17:15:27 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถามต่ออีกหน่้อยครับ.........จากตัวอย่างนี้ ผมจะ แทรกโค้ดตรงไหน เพื่อให้ใช้กับ การ Search แบบมีเืงือนไข เหมือนตัวอย่างแรกครับ.....คือข้อมูลมัน เยอะครับ..............
Code (PHP)
<?
class Paginator{
var $items_per_page;
var $items_total;
var $current_page;
var $num_pages;
var $mid_range;
var $low;
var $high;
var $limit;
var $return;
var $default_ipp;
var $querystring;
var $url_next;
function Paginator()
{
$this->current_page = 1;
$this->mid_range = 7;
$this->items_per_page = $this->default_ipp;
$this->url_next = $this->url_next;
}
function paginate()
{
if(!is_numeric($this->items_per_page) OR $this->items_per_page <= 0) $this->items_per_page = $this->default_ipp;
$this->num_pages = ceil($this->items_total/$this->items_per_page);
if($this->current_page < 1 Or !is_numeric($this->current_page)) $this->current_page = 1;
if($this->current_page > $this->num_pages) $this->current_page = $this->num_pages;
$prev_page = $this->current_page-1;
$next_page = $this->current_page+1;
if($this->num_pages > 10)
{
$this->return = ($this->current_page != 1 And $this->items_total >= 10) ? "<a class=\"paginate\" href=\"".$this->url_next.$this->$prev_page."\">« Previous</a> ":"<span class=\"inactive\" href=\"#\">« Previous</span> ";
$this->start_range = $this->current_page - floor($this->mid_range/2);
$this->end_range = $this->current_page + floor($this->mid_range/2);
if($this->start_range <= 0)
{
$this->end_range += abs($this->start_range)+1;
$this->start_range = 1;
}
if($this->end_range > $this->num_pages)
{
$this->start_range -= $this->end_range-$this->num_pages;
$this->end_range = $this->num_pages;
}
$this->range = range($this->start_range,$this->end_range);
for($i=1;$i<=$this->num_pages;$i++)
{
if($this->range[0] > 2 And $i == $this->range[0]) $this->return .= " ... ";
if($i==1 Or $i==$this->num_pages Or in_array($i,$this->range))
{
$this->return .= ($i == $this->current_page And $_GET['Page'] != 'All') ? "<a title=\"Go to page $i of $this->num_pages\" class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" title=\"Go to page $i of $this->num_pages\" href=\"".$this->url_next.$i."\">$i</a> ";
}
if($this->range[$this->mid_range-1] < $this->num_pages-1 And $i == $this->range[$this->mid_range-1]) $this->return .= " ... ";
}
$this->return .= (($this->current_page != $this->num_pages And $this->items_total >= 10) And ($_GET['Page'] != 'All')) ? "<a class=\"paginate\" href=\"".$this->url_next.$next_page."\">Next »</a>\n":"<span class=\"inactive\" href=\"#\">» Next</span>\n";
}
else
{
for($i=1;$i<=$this->num_pages;$i++)
{
$this->return .= ($i == $this->current_page) ? "<a class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" href=\"".$this->url_next.$i."\">$i</a> ";
}
}
$this->low = ($this->current_page-1) * $this->items_per_page;
$this->high = ($_GET['ipp'] == 'All') ? $this->items_total:($this->current_page * $this->items_per_page)-1;
$this->limit = ($_GET['ipp'] == 'All') ? "":" LIMIT $this->low,$this->items_per_page";
}
function display_pages()
{
return $this->return;
}
}
?>
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<style type="text/css">
<!--
.paginate {
font-family: Arial, Helvetica, sans-serif;
font-size: .7em;
}
a.paginate {
border: 1px solid #000080;
padding: 2px 6px 2px 6px;
text-decoration: none;
color: #000080;
}
h2 {
font-size: 12pt;
color: #003366;
}
h2 {
line-height: 1.2em;
letter-spacing:-1px;
margin: 0;
padding: 0;
text-align: left;
}
a.paginate:hover {
background-color: #000080;
color: #FFF;
text-decoration: underline;
}
a.current {
border: 1px solid #000080;
font: bold .7em Arial,Helvetica,sans-serif;
padding: 2px 6px 2px 6px;
cursor: default;
background:#000080;
color: #FFF;
text-decoration: none;
}
span.inactive {
border: 1px solid #999;
font-family: Arial, Helvetica, sans-serif;
font-size: .7em;
padding: 2px 6px 2px 6px;
color: #999;
cursor: default;
}
-->
</style>
<body>
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM customer ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 10; // 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;
}
$strSQL .=" order by CustomerID ASC LIMIT $Page_Start , $Per_Page";
$objQuery = mysql_query($strSQL);
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["CustomerID"];?></div></td>
<td><?=$objResult["Name"];?></td>
<td><?=$objResult["Email"];?></td>
<td><div align="center"><?=$objResult["CountryCode"];?></div></td>
<td align="right"><?=$objResult["Budget"];?></td>
<td align="right"><?=$objResult["Used"];?></td>
</tr>
<?
}
?>
</table>
<br>
Total <?= $Num_Rows;?> Record
<?
$pages = new Paginator;
$pages->items_total = $Num_Rows;
$pages->mid_range = 10;
$pages->current_page = $Page;
$pages->default_ipp = $Per_Page;
$pages->url_next = $_SERVER["PHP_SELF"]."?QueryString=value&Page=";
$pages->paginate();
echo $pages->display_pages()
?>
<?
mysql_close($objConnect);
?>
</body>
</html>
|
|
|
|
|
Date :
2012-10-12 11:10:20 |
By :
dongjar |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้แล้วครับ............................โค้ดสมบูรณ์ครับ
Code (PHP)
<?
//include("check_session.php");
//include("../check_time_out.php");
include("../config.inc.php");
/*if($_SESSION['Status'] != "ADMIN")
{
header("location:list.php");
//exit();
}*/
$strSQL = "SELECT * FROM member WHERE UserID = '".$_SESSION['UserID']."' ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
//****************************************
class Paginator{
var $items_per_page;
var $items_total;
var $current_page;
var $num_pages;
var $mid_range;
var $low;
var $high;
var $limit;
var $return;
var $default_ipp;
var $querystring;
var $url_next;
var $urlquery_str;
function Paginator()
{
$this->current_page = 1;
$this->mid_range = 7;
$this->items_per_page = $this->default_ipp;
$this->url_next = $this->url_next;
}
function paginate()
{
if(!is_numeric($this->items_per_page) OR $this->items_per_page <= 0) $this->items_per_page = $this->default_ipp;
$this->num_pages = ceil($this->items_total/$this->items_per_page);
if($this->current_page < 1 Or !is_numeric($this->current_page)) $this->current_page = 1;
if($this->current_page > $this->num_pages) $this->current_page = $this->num_pages;
$prev_page = $this->current_page-1;
$next_page = $this->current_page+1;
if($this->num_pages > 5)
{
$this->return = ($this->current_page != 1 And $this->items_total >= 10) ? "<a class=\"paginate\" href=\"".$this->url_next.$this->$prev_page."&keywords=$_GET[keywords]"."\">« Previous</a> ":"<span class=\"inactive\" href=\"#\">« Previous</span> ";//ใส่ตรงบรรทัดนี่ครับ...........ตรง &keywords=$_GET[keywords] แล้ว & ไปเรื่อยๆ ถ้า seacrh หลายเงือนไข
$this->start_range = $this->current_page - floor($this->mid_range/2);
$this->end_range = $this->current_page + floor($this->mid_range/2);
if($this->start_range <= 0)
{
$this->end_range += abs($this->start_range)+1;
$this->start_range = 1;
}
if($this->end_range > $this->num_pages)
{
$this->start_range -= $this->end_range-$this->num_pages;
$this->end_range = $this->num_pages;
}
$this->range = range($this->start_range,$this->end_range);
for($i=1;$i<=$this->num_pages;$i++)
{
if($this->range[0] > 2 And $i == $this->range[0]) $this->return .= " ... ";
if($i==1 Or $i==$this->num_pages Or in_array($i,$this->range))
{
$this->return .= ($i == $this->current_page And $_GET['Page'] != 'All') ? "<a title=\"Go to page $i of $this->num_pages\" class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" title=\"Go to page $i of $this->num_pages\" href=\"".$this->url_next.$i."&keywords=$_GET[keywords]"."\">$i</a> ";//ใส่ตรงบรรทัดนี่ครับ...........ตรง &keywords=$_GET[keywords] แล้ว & ไปเรื่อยๆ ถ้า seacrh หลายเงือนไข
}
if($this->range[$this->mid_range-1] < $this->num_pages-1 And $i == $this->range[$this->mid_range-1]) $this->return .= " ... ";
}
$this->return .= (($this->current_page != $this->num_pages And $this->items_total >= 10) And ($_GET['Page'] != 'All')) ? "<a class=\"paginate\" href=\"".$this->url_next.$next_page."&keywords=$_GET[keywords]"."\">Next »</a>\n":"<span class=\"inactive\" href=\"#\">» Next</span>\n";//ใส่ตรงบรรทัดนี่ครับ...........ตรง &keywords=$_GET[keywords] แล้ว & ไปเรื่อยๆ ถ้า seacrh หลายเงือนไข
}
else
{
for($i=1;$i<=$this->num_pages;$i++)
{
$this->return .= ($i == $this->current_page) ? "<a class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" href=\"".$this->url_next.$i."&keywords=$_GET[keywords]"."\">$i</a> ";//ใส่ตรงบรรทัดนี่ครับ...........ตรง &keywords=$_GET[keywords] แล้ว & ไปเรื่อยๆ ถ้า seacrh หลายเงือนไข
}
}
$this->low = ($this->current_page-1) * $this->items_per_page;
$this->high = ($_GET['ipp'] == 'All') ? $this->items_total:($this->current_page * $this->items_per_page)-1;
$this->limit = ($_GET['ipp'] == 'All') ? "":" LIMIT $this->low,$this->items_per_page";
}
function display_pages()
{
return $this->return;
}
}
//****************************************************
if($_GET["keywords"] != "")
{
$conSQL = "SELECT * FROM receive_sss WHERE";
$conSQL .="(list_num LIKE '%".$_GET["keywords"]."%' or sss LIKE '%".$_GET["keywords"]."%'";
$conSQL .="or branch LIKE '%".$_GET["keywords"]."%' or about LIKE '%".$_GET["keywords"]."%'";
$conSQL .="or name LIKE '%".$_GET["keywords"]."%' or datIn LIKE '%".$_GET["keywords"]."%')";
$conQry = mysql_query($conSQL) or die("Error Query[".$conSQL."]");
$Num_Rows = mysql_num_rows($conQry);
$Per_Page = 8; // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
//$Num_Pages =($Num_Rows/$Per_Page)+1;
//$Num_Pages = (int)$Num_Pages;
//$Page=$Num_Pages;
$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;
}
$conSQL .=" ORDER BY list_num ASC LIMIT $Page_Start , $Per_Page";
$conQry = mysql_query($conSQL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>โปรแกรมสารบัญสำนักงานสหกิจศึกษา</title>
<script language="javascript" type="text/javascript">
function Conf(object) {
if (confirm("แน่ใจหรอว่าคุณต้องการลบไฟล์นี้ ?") == true) {
return true;
}
return false;
}
</script>
<style type="text/css">
<!--
.style1 {
color: #FF0000;
font-weight: bold;
}
.style8 {color: #FF0000}
.style9 {
color: #000000;
font-weight: bold;
}
.style16 {color: #0000FF;
font-weight: bold;
}
.style17 {color: #993300}
-->
<!--
.paginate {
font-family: Arial, Helvetica, sans-serif;
font-size: .7em;
}
a.paginate {
border: 1px solid #000080;
padding: 2px 6px 2px 6px;
text-decoration: none;
color: #000080;
}
h2 {
font-size: 12pt;
color: #003366;
}
h2 {
line-height: 1.2em;
letter-spacing:-1px;
margin: 0;
padding: 0;
text-align: left;
}
a.paginate:hover {
background-color: #000080;
color: #FFF;
text-decoration: underline;
}
a.current {
border: 1px solid #000080;
font: bold .7em Arial,Helvetica,sans-serif;
padding: 2px 6px 2px 6px;
cursor: default;
background:#000080;
color: #FFF;
text-decoration: none;
}
span.inactive {
border: 1px solid #999;
font-family: Arial, Helvetica, sans-serif;
font-size: .7em;
padding: 2px 6px 2px 6px;
color: #999;
cursor: default;
}
-->
</style>
</head>
<body>
<form id="fmSearch" name="fmSearch" method="get" action="searchOK.php">
<table width="966" border="0">
<tr>
<td width="683"><table width="423" border="0">
<tr>
<td width="271"><img src="../imags/user.png" alt="" width="25" height="25" /> <span class="style16"> <span class="style8">
<?=$objResult["Status"];?>
:</span>
<?=$objResult["Name"];?>
</span></td>
<td width="142"><a href="../logout.php"><strong><img src="../imags/unlock.png" alt="" width="25" height="25" />ออกจากระบบ</strong></a></td>
</tr>
</table>
<br /></td>
<td width="273"> </td>
</tr>
<tr>
<td><span class="style1 style6 style17">ทะเบียนหนังสือรับ (แบบคำร้อง สสศ.๐๑ - สสศ.๑๑) </span></td>
<td><table width="273" border="1" cellspacing="1" cellpadding="1">
<tr>
<td width="63" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>ค้นหา</strong></div></td>
<td width="144" bordercolor="#000000"><label>
<input type="text" name="keywords" id="keywords" />
</label></td>
<td width="48" bordercolor="#000000"><label>
<input type="submit" name="button2" id="button2" value="ตกลง" />
</label></td>
</tr>
</table></td>
</tr>
</table>
</form>
<table width="483" border="0">
<tr>
<td width="96"><a href="list.php"><img src="../imags/house.png" width="25" height="25" />หน้าหลัก</a></td>
<td width="101"><a href="print_out.php"><img src="../imags/printer.png" width="25" height="25" />หน้าพริ้น</a></td>
<td width="78"><a href="search.php"><img src="../imags/grass.png" width="25" height="25" />ค้นหา</a></td>
<td width="190"><img src="../imags/arrow.png" width="25" height="26" /> <a href="../index.php">หน้าเลือกโปรแกรม</a></td>
</tr>
</table>
<br />
<table width="1256" border="1" cellpadding="3" cellspacing="0">
<tr>
<td width="89" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>เลข<br />
ทะเบียนส่ง</strong></div></td>
<td width="98" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>สสศ. ๐๑-๑๑</strong></div></td>
<td width="98" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>ลงวันที่</strong></div></td>
<td width="271" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>จากสาขา</strong></div></td>
<td width="72" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>ถึง</strong></div></td>
<td width="220" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>เรื่อง</strong></div></td>
<td width="144" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>ลงชื่อ</strong></div></td>
<td width="108" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>หมายเหตุ</strong></div></td>
<td width="40" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>แก้ไข</strong></div></td>
<td width="34" bordercolor="#000000" bgcolor="#CC6600"><div align="center"><strong>ลบ</strong></div></td>
</tr>
<?
while($disResult = mysql_fetch_array($conQry)){
?>
<tr>
<td bordercolor="#000000"><div align="center" >
<a href="detail.php?empid=<?=$disResult["em_id"];?>">
<?=$disResult["list_num"];?>
</a></div></td>
<td bordercolor="#000000"><div align="center">
<?=$disResult["sss"];?>
</div></td>
<td bordercolor="#000000"><div align="center">
<?=$disResult["tday"];?>
<?=$disResult["tmonth"];?>
<?=$disResult["tyear"];?>
</div></td>
<td bordercolor="#000000"><?=$disResult["branch"];?></td>
<td bordercolor="#000000"><div align="center">สหกิจ</div></td>
<td bordercolor="#000000"><?=$disResult["matter"];?>
<span class="style8"><strong> : </strong>
<?=$disResult["about"];?></span></td>
<td bordercolor="#000000"><div align="center">
<span class="style9">
<?=$disResult["name"];?>
</span></div></td>
<td bordercolor="#000000"><div align="center">
<?=$disResult["datIn"];?>
</div></td>
<td bordercolor="#000000"><div align="center"><a href="update.php?empid=<?=$disResult["em_id"];?>">แก้ไข</a></div></td>
<td bordercolor="#000000"><div align="center"><a href="delete.php?empid=<?=$disResult["em_id"];?>" onClick="return Conf(this)">ลบ</a></div></td>
</tr>
<?
}
?>
<tr>
<td colspan="10" bordercolor="#000000"><span class="style1">ไม่มีข้อมูล.....</span></td>
</tr>
</table>
<p><strong>มีทั้งหมด :</strong>
<?= $Num_Rows;?>
<strong>เรื่อง...</strong>
<?
$pages = new Paginator;
$pages->items_total = $Num_Rows;
$pages->mid_range = 5;
$pages->current_page = $Page;
$pages->default_ipp = $Per_Page;
$pages->url_next = $_SERVER["PHP_SELF"]."?QueryString=value&Page=";
/*$pages->urlquery_str="";
if(isset($_GET['keywords']) && $_GET['keywords']!=""){
$pages->urlquery_str.="&keywords=".$_GET['keywords'];
} */
$pages->paginate();
echo $pages->display_pages()
?>
</p>
<p>
<?
mysql_close();
?>
</p>
<p>
<?
}
?>
</p>
</body>
</html>
|
|
|
|
|
Date :
2012-10-13 19:52:54 |
By :
dongjar |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยินดีด้วยครับ
|
|
|
|
|
Date :
2012-10-13 19:59:14 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|