ช่วยด้วยครับเรื่องการแบ่งหน้า php คือผมกำลังหัดเขียนสคริปดึงข้อมูลมาโชว์แบบ 3 คอลัมแล้วผมติดปัญหาคือ
ตัวอย่างนี้น่ะครับ Code แบ่งหน้า พร้อมกับแบ่ง Column ครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<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 = 2; // 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);
echo"<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\"><tr>";
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
$intRows++;
echo "<td>";
?>
<table width="91" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="center"><a href="gallery/<?=$objResult["Picture"];?>" target="_blank"><img src="gallery/<?=$objResult["Thumbnails"];?>" width="70" height="53" border="0"></a></div></td>
</tr>
<tr>
<td><div align="center"><?=$objResult["GalleryName"];?></div></td>
</tr>
</table>
<?
echo"</td>";
if(($intRows)%2==0)
{
echo"</tr>";
}
else
{
echo "<td>";
}
}
echo"</tr></table>";
?>
<br>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
}
mysql_close($objConnect);
?>
</body>
</html>
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<?
$objConnect = mysql_connect("localhost","root","root") or die(mysql_error());
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM gallery";
$objQuery = mysql_query($strSQL);
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 4; // 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 GalleryID ASC LIMIT $Page_Start , $Per_Page";
$objQuery = mysql_query($strSQL);
echo"<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\"><tr>";
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
echo "<td>";
$intRows++;
?>
<center>
<img src="shotdev/<?=$objResult["Picture"];?>"><br>
<?=$objResult["GalleryName"];?>
<br>
</center>
<?
echo"</td>";
if(($intRows)%2==0)
{
echo"</tr>";
}
}
echo"</tr></table>";
?>
<br>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
}
?>
</body>
</html>
<?
mysql_close($objConnect);
?>
SQL
CREATE TABLE `gallery` (
`GalleryID` int(11) NOT NULL auto_increment,
`GalleryName` varchar(100) NOT NULL,
`Picture` varchar(100) NOT NULL,
PRIMARY KEY (`GalleryID`)
) ENGINE=MyISAM ;
INSERT INTO `gallery` VALUES (1, 'Picture 1', 'img1.jpg');
INSERT INTO `gallery` VALUES (2, 'Picture 2', 'img2.jpg');
INSERT INTO `gallery` VALUES (3, 'Picture 3', 'img3.jpg');
INSERT INTO `gallery` VALUES (4, 'Picture 4', 'img4.jpg');
INSERT INTO `gallery` VALUES (5, 'Picture 5', 'img5.jpg');
INSERT INTO `gallery` VALUES (6, 'Picture 6', 'img6.jpg');
INSERT INTO `gallery` VALUES (7, 'Picture 7', 'img7.jpg');
INSERT INTO `gallery` VALUES (8, 'Picture 8', 'img8.jpg');
Go to : PHP MySQL Multiple Column and Paging/Pagination
Date :
2009-11-11 21:52:03
By :
webmaster
ขอบคุณหลายๆ แหะๆๆ ผมอุตส่าตั้งใจจะทำถวายพระพรให้ในหลวงด้วยนะหนิ
Date :
2009-11-11 22:01:13
By :
zonerelax
Thank you P' Win มากครับ ขอบคุณหลายๆๆครบ
Date :
2009-11-12 11:48:53
By :
boy415
ไท ร้อยเอ็ด ตั๊ว
ขอถามเรื่อง การ redirect จากบทความที่แล้วครับ
ผมอยากให้มัน ไปยังหน้าล่าสุดที่เราร่วมลงนาม
ผมอธิบายไม่ถูกอะครับ ตอนนี้ผมเขียนให้มันไปได้เฉพาะหน้าแรก
Code (PHP)
$sql="insert into test1 values('','$Yot','$Name')";
$result=mysql_db_query($dbname,$sql);
if ($result)
{
header('Location:pol.php');
}
else
{
echo "<h3>ไม่สามารถบันทึกข้อมูลได้ครับ</h3>";
}
ค
Date :
2009-11-12 18:51:36
By :
zonerelax
โค๊ดแบ่งหน้าอ่ะค่ะ ตอนค้นหาคำ(Keyword)ลงไปแล้วก็ค้นหาได้นะคะ จำนวนหน้าก็ออกมาครบถ้วน แต่ทำไมพอคลิกไปหน้าที่ 2 ข้อมูลที่ค้นหามันถึงไม่เอาkeywordมาหาให้ด้วยอ่ะคะ มันออกมาเป็นหน้าที่ 2 ของการค้นหาแบบ ทั้งหมดอ่ะค่ะ เช่น ต้องการค้นหาคำว่า 2551 เว็บก็ค้นหามาให้ว่ามีจำนวนทั้งหมด 4 หน้า พอคลิกไปหน้าที่ 2 ข้อมูล
ที่ค้นหา 2551 ก็หายไปเลยค่ะ เลยเอาตัวอย่างโค๊ดบางส่วนที่คิดว่าผิดมาให้ช่วยดูหน่อยค่ะ ว่าแก้ยังไงคะ งง
<? // สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า
function page_navigator($before_p,$plus_p,$num_rows,$total_p){
echo $before_p." to ".$plus_p." of ".$num_rows." | Go to Page ";
for($i=1;$i<=$total_p;$i++){
echo "[<a href=\"$PHP_SELF?before_p=$i&&keyword=$_POST[keyword]\">$i</a>]";
}
}
?>
Date :
2010-08-08 01:01:41
By :
น.ส.งง
เปลี่ยนจาก _POST เป็น _REQUEST
Date :
2010-08-08 09:12:10
By :
PlaKriM
ขอบคุณมากๆๆๆๆๆ
Date :
2010-12-29 17:18:53
By :
pip147258
Load balance : Server 03