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 > เรื่องการแบ่งหน้าเพจ ที่แสดงข้อมูลจากการเสิดแต่พอกดหน้าไปหน้า 2 3 next มันกลายเปนโชว์ข้อมูลทั้งหมดในดาต้าเบสแทนอะค่ะ



 

เรื่องการแบ่งหน้าเพจ ที่แสดงข้อมูลจากการเสิดแต่พอกดหน้าไปหน้า 2 3 next มันกลายเปนโชว์ข้อมูลทั้งหมดในดาต้าเบสแทนอะค่ะ

 



Topic : 050528



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



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




คือว่าหนูเสิดข้อมูลจาก txtbox(จากรายชื่อ) และ combobox(จากประเภท และเขต) ทั้ง 3 อย่างพร้อมกันค่ะ มันก้อแสดงตามปกติว่าพบข้อมูล 2 หน้า แต่พอกดหน้าที่ 2 หรือ next มันกลายเปนแสดงข้อมูลทั้งหมดที่มีอยุ่ในดาต้าเบสแทนอะค่ะ ไม่รุ้ว่าโค้ดหนูผิดตงไหนหรือป่าว รบกวนพี่ๆช่วยดูและแนะนำให้หน่อยนะคะ ใช้ css ในการแบ่งเพจค่ะ
ค้นหาแล้วพบ 2 หน้าตามปกติ
ค้นหา

พอกดหน้าที่ 2 หรือ next กลายเปนแสดงทั้งหมดค่ะ
2

อันนี้ไฟล์ seard.php
Code (PHP)
 <form method="post" action="PerPage.php">
            <font size="2" color="#663300"> &nbsp; คำค้น : </font><br>
           <input type="text" name="keyword" size="21" value='<? echo "$keyword"; ?>'> 
            <p></p>
            <font size="2" color="#663300"> &nbsp; เลือกจากเขต : </font><br>
           <select name="Loc_id"><option value="0">ทั้งหมด 	</option>
        <? 
            include ("connect.php");
            $sql="SELECT * FROM tb_local ORDER BY Loc_id ASC";
            $result=mysql_query($sql,$conn)or die(mysql_error());
                    while($rs = mysql_fetch_array($result))
                        {	
						if($rs['Loc_id']==$Loc_id){
						$selecttemp="selected";	
						}else{
						$selecttemp="";		
						}
         echo "<option value='$rs[Loc_id]' $selecttemp>$rs[Loc_name]</option>"; ?>		
     	<? 	}  mysql_close($conn); ?> </select>
            <font size="2" color="#663300"> &nbsp; เลือกจากประเภท : </font><br>
            <select name="Type_id"><option value="0">ทั้งหมด</option>
         
         <? $sql="SELECT * FROM tb_type ORDER BY Type_id ASC";
            $result=mysql_query($sql,$conn)or die(mysql_error());
   			mysql_query($sql,$conn) or die("Error! Can not Update");
                    while($rs = mysql_fetch_array($result))
                       {	
						if($rs['Type_id']==$Type_id){
						$selecttemp="selected";	
						}else{
						$selecttemp="";		
						}
         echo "<option value='$rs[Type_id]' $selecttemp>$rs[Type_name]</option>"; ?>		
     	<? 	} mysql_close($conn);?></select>
            
          <div align="right"><input type="submit"  name="Submit" value="  ค้นหา  " align="right"></div> </form>


ส่วนอันนี้หน้าแสดงข้อมูล PerPage.php

Code (PHP)
<?php
echo"<table width=80% border=0 align=center>";
		$keyword = $_POST["keyword"];
		$Type_id = $_POST["Type_id"];
		$Loc_id = $_POST["Loc_id"];
include ("connect.php");

// สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า   
function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){   
	global $urlquery_str;
	$pPrev=$chk_page-1;
	$pPrev=($pPrev>=0)?$pPrev:0;
	$pNext=$chk_page+1;
	$pNext=($pNext>=$total_p)?$total_p-1:$pNext;		
	$lt_page=$total_p-4;
	if($chk_page>0){  
		echo "<a  href='?s_page=$pPrev&urlquery_str=".$urlquery_str."' class='naviPN'>ก่อนหน้า</a>";
	}
	if($total_p>=11){
		if($chk_page>=4){
			echo "<a $nClass href='?s_page=0&urlquery_str=".$urlquery_str."'>1</a><a class='SpaceC'>. . .</a>";   
		}
		if($chk_page<4){
			for($i=0;$i<$total_p;$i++){  
				$nClass=($chk_page==$i)?"class='selectPage'":"";
				if($i<=4){
				echo "<a $nClass href='?s_page=$i&urlquery_str=".$urlquery_str."'>".intval($i+1)."</a> ";   
				}
				if($i==$total_p-1 ){ 
				echo "<a class='SpaceC'>. . .</a><a $nClass href='?s_page=$i&urlquery_str=".$urlquery_str."'>".intval($i+1)."</a> ";   
				}		
			}
		}
		if($chk_page>=4 && $chk_page<$lt_page){
			$st_page=$chk_page-3;
			for($i=1;$i<=5;$i++){
				$nClass=($chk_page==($st_page+$i))?"class='selectPage'":"";
				echo "<a $nClass href='?s_page=".intval($st_page+$i)."'>".intval($st_page+$i+1)."</a> ";   	
			}
			for($i=0;$i<$total_p;$i++){  
				if($i==$total_p-1 ){ 
				$nClass=($chk_page==$i)?"class='selectPage'":"";
				echo "<a class='SpaceC'>. . .</a><a $nClass href='?s_page=$i&urlquery_str=".$urlquery_str."'>".intval($i+1)."</a> ";   
				}		
			}									
		}	
		if($chk_page>=$lt_page){
			for($i=0;$i<=4;$i++){
				$nClass=($chk_page==($lt_page+$i-1))?"class='selectPage'":"";
				echo "<a $nClass href='?s_page=".intval($lt_page+$i-1)."'>".intval($lt_page+$i)."</a> ";   
			}
		}		 
	}else{
		for($i=0;$i<$total_p;$i++){  
			$nClass=($chk_page==$i)?"class='selectPage'":"";
			echo "<a href='?s_page=$i&urlquery_str=".$urlquery_str."' $nClass  >".intval($i+1)."</a> ";   
		}		
	} 	
	if($chk_page<$total_p-1){
		echo "<a href='?s_page=$pNext&urlquery_str=".$urlquery_str."'  class='naviPN'>ถัดไป</a>";
	}
} ?><ul>
<?php
			$sql = "SELECT tb_museum.Mus_id,tb_museum.Mus_name,tb_museum.Mus_detail,tb_local.Loc_name,tb_local.Loc_id,tb_type.Type_name,tb_type.Type_id
					FROM tb_museum ,tb_local,tb_type 
					WHERE Mus_idloc=Loc_id and Mus_idtype=Type_id " ; 
			
			// **โค้ดสำคัญ** เปรียบเทียบตัวอักษรที่กรอกใน txt ว่าตรงกับรายชื่อใดในพิพิธภัณฑ์บ้าง โดยที่่มีเงื่อนไขว่า รายชื่อนั้นต้องตรงกับ combobox (เขต/ประเภท) ที่เลือกด้วย
			if($keyword) { $sql .= " and tb_museum.Mus_name like '%$keyword%'"; } 
			if($Type_id) { $sql .= " and tb_type.Type_id = '$Type_id'";} 
			if($Loc_id) { $sql .= " and tb_local.Loc_id = '$Loc_id'";} 
			
		$sqlr=mysql_query($sql);
		$total=mysql_num_rows($sqlr);
		
		$e_page=4; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า   
		if(!isset($_GET['s_page'])){   
			$_GET['s_page']=0;   
		}else{   
			$chk_page=$_GET['s_page'];     
			$_GET['s_page']=$_GET['s_page']*$e_page;   
		}   
		$sql.=" LIMIT ".$_GET['s_page'].",$e_page";
		$sqlr=mysql_query($sql);
		if(mysql_num_rows($sqlr)>=1){   
			$plus_p=($chk_page*$e_page)+mysql_num_rows($sqlr);   
		}else{   
			$plus_p=($chk_page*$e_page);       
		}   
		$total_p=ceil($total/$e_page);   
		$before_p=($chk_page*$e_page)+1;  
		
		while($rows=mysql_fetch_array($sqlr)){
		echo"<tr>";
						//set ค่ารายชื่อจาก database เก็บในตัวแปร เพื่อนำมาแสดงค่า
						$MusId = $rows["Mus_id"]; 
						$Mus_name = $rows["Mus_name"];
						$Mus_address = $rows["Mus_address"];
						$Mus_tel = $rows["Mus_tel"];
						$Mus_detail = $rows["Mus_detail"]; 
						$Type_name = $rows["Type_name"]; 
						$Loc_name = $rows["Loc_name"];
echo"<td width=71%  bgcolor=#f5eac2  background='../Picture/topage.jpg'>
								 	<font size=2>ประเภท :&nbsp;</font>
								 	<a href='MuseumDetail.php?MusId=$MusId'><font size=2 color=#444444>$Type_name</font></a>&nbsp;&nbsp;
								 	<font size=2>เขต :&nbsp;</font>
									<a href='MuseumDetail.php?MusId=$MusId'><font size=2 color=#444444>$Loc_name</font></a></td></tr>
							 <tr><td bgcolor=#FFFFFF width=80% height=100 valign=top><a href='MuseumDetail.php?MusId=$MusId'>
								 	<font size=2 color=#444444><b> <br> $Mus_name </b></font></a><br>
								 	<font size=2 color=#444444>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Mus_detail</font></td></tr>";
					}//end while 		
if($total>0){ ?>
		<div class="browse_page">
  <? // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า   
  page_navigator($before_p,$plus_p,$total,$total_p,$chk_page); ?> 
</div> </table></ul>
<?php } ?> 

รบกวนพี่ๆช่วยดูให้หน่อยนะคะ ขอบคุณล่วงหน้าค่ะ ^^




Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-10-21 02:43:26 By : Maxini View : 1378 Reply : 3
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

Quote:
$sql.=" LIMIT ".$_GET['s_page'].",$e_page";


ลอง echo $sql; ดูน่ะครับ


อันนี้เป็น Code ของไทยครีเอทครับ
Go to : PHP MySQL List Record Paging/Pagination






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-21 06:13:10 By : webmaster
 


 

No. 2



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



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


รายงานผลๆค่ะ

ทำได้แล้วค่ะพี่ ต้องรื้อโค้ดเกือบหมดเลยอะค่ะ (อ้างอิงจาก link พี่วิน ^^) แถมโค้ดยังเขียนแบบไม่ค่อยตามหลักการเท่าไหร่
ใช้การส่งค่าตัวแปรทุกตัวที่ค้นหาไปกับ url เลยทำให้ url มันยาวแระแปลกๆไปหน่อย แต่ก้อใช้ได้ปกติแร้วค่า

ขอบคุนพี่วินมากๆๆ นะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-22 00:35:35 By : Maxini
 

 

No. 3

Guest


รบกวนขอดูโค๊ดหน่อยได้มั้ยค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-03 14:17:11 By : li
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เรื่องการแบ่งหน้าเพจ ที่แสดงข้อมูลจากการเสิดแต่พอกดหน้าไปหน้า 2 3 next มันกลายเปนโชว์ข้อมูลทั้งหมดในดาต้าเบสแทนอะค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่