|  | 
	                
  
    | 
	 
        สอบถามเรื่่อง 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 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |  |