|
|
|
เรื่องการแบ่งหน้าเพจ ที่แสดงข้อมูลจากการเสิดแต่พอกดหน้าไปหน้า 2 3 next มันกลายเปนโชว์ข้อมูลทั้งหมดในดาต้าเบสแทนอะค่ะ |
|
|
|
|
|
|
|
คือว่าหนูเสิดข้อมูลจาก txtbox(จากรายชื่อ) และ combobox(จากประเภท และเขต) ทั้ง 3 อย่างพร้อมกันค่ะ มันก้อแสดงตามปกติว่าพบข้อมูล 2 หน้า แต่พอกดหน้าที่ 2 หรือ next มันกลายเปนแสดงข้อมูลทั้งหมดที่มีอยุ่ในดาต้าเบสแทนอะค่ะ ไม่รุ้ว่าโค้ดหนูผิดตงไหนหรือป่าว รบกวนพี่ๆช่วยดูและแนะนำให้หน่อยนะคะ ใช้ css ในการแบ่งเพจค่ะ
ค้นหาแล้วพบ 2 หน้าตามปกติ
พอกดหน้าที่ 2 หรือ next กลายเปนแสดงทั้งหมดค่ะ
อันนี้ไฟล์ seard.php
Code (PHP)
<form method="post" action="PerPage.php">
<font size="2" color="#663300"> คำค้น : </font><br>
<input type="text" name="keyword" size="21" value='<? echo "$keyword"; ?>'>
<p></p>
<font size="2" color="#663300"> เลือกจากเขต : </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"> เลือกจากประเภท : </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>ประเภท : </font>
<a href='MuseumDetail.php?MusId=$MusId'><font size=2 color=#444444>$Type_name</font></a>
<font size=2>เขต : </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> $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
|
|
|
|
|
|
Date :
2010-10-21 02:43:26 |
By :
Maxini |
View :
1378 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รายงานผลๆค่ะ
ทำได้แล้วค่ะพี่ ต้องรื้อโค้ดเกือบหมดเลยอะค่ะ (อ้างอิงจาก link พี่วิน ^^) แถมโค้ดยังเขียนแบบไม่ค่อยตามหลักการเท่าไหร่
ใช้การส่งค่าตัวแปรทุกตัวที่ค้นหาไปกับ url เลยทำให้ url มันยาวแระแปลกๆไปหน่อย แต่ก้อใช้ได้ปกติแร้วค่า
ขอบคุนพี่วินมากๆๆ นะคะ
|
|
|
|
|
Date :
2010-10-22 00:35:35 |
By :
Maxini |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนขอดูโค๊ดหน่อยได้มั้ยค่ะ
|
|
|
|
|
Date :
2011-05-03 14:17:11 |
By :
li |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|