A-AA+then

รูปแบบการแบ่งหน้า php ครับ

2,495
อยากได้ ประมาณนี้อะครับ
[<<]  [<]  4 5 [6] 7 8 [>] [>>]
รบกวนช่วยสอนหน่อยนะครับ  จนปัญญา = =;;

9 ความคิดเห็น

ลองดูที่ webboard ของ GCMS สิครับ ถ้าต้องการแบบของผม
1

งง กับโค้ดมากๆ เลยครับ
=  =;;

โค้ดของท่าน goragod  เป็นแบบขั้นสูงมาก
ยากที่ผมจะเข้าใจครับ
2

มีตัวนึงครับ น่าจะเข้าใจง่าย เพราะผมก้อพึ่งหัดเขียนก้อพอเข้าใจครับ
ออกแบบฐานข้อมูลดังนี้


Create Database member;

CREATE TABLE member (
id int(4) NOT NULL auto_increment,
user varchar(30) NOT NULL,
name varchar(50) NOT NULL,
email varchar(50) NOT NULL,
tel varchar(50) NOT NULL,
PRIMARY KEY (id)
);

Sample1.php

<html>
<head>
<body bgcolor="#FFFFFF">
<br>
<table width="72%" border="1" align="center" cellspacing="0" cellpadding="0" height="23">
<tr>
<td width="8%">
<div align="center">id</div>
</td>
<td width="14%">
<div align="center">user</div>
</td>
<td width="30%">
<div align="center">name</div>
</td>
<td width="26%">
<div align="center">email</div>
</td>
<td width="22%">
<div align="center">tel</div>
</td>
</tr>
</table>
<?
$host="localhost";
$username="";
$pass_word="";
$db="member";
mysql_connect( $host,$username,$pass_word) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้");

$sql = "select * From member ";
/* ตั้งค่า แสดงผลต่อหน้า $Per_Page */

$Per_Page =2;
if(!$Page)
$Page=1;

$Prev_Page = $Page-1;
$Next_Page = $Page+1;

$result = mysql_query($sql);
$Page_start = ($Per_Page*$Page)-$Per_Page;
$Num_Rows = mysql_num_rows($result);

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;

if(($Page>$Num_Pages) || ($Page<0))
print "<center><b>จำนวน $Page มากกว่า $Num_Pages ยังไม่มีข้อความ<b></center>";
$sql .= " Where 1 Order by id Desc LIMIT $Page_start , $Per_Page";
//ส่วนแสดงผล
$result = mysql_query($sql);
While($row= mysql_fetch_array($result)){
$id = $row["id"];
$user = $row["user"];
$name = $row["name"];
$email = $row["email"];
$tel = $row["tel"];

?>

<table width="72%" border="1" align="center" cellspacing="0" cellpadding="0" height="23">
<tr>
<td width="8%">
<div align="center">
<?= $id;?>
</div>
</td>
<td width="14%">
<?= $user;?>
</td>
<td width="30%">
<?= $name;?>
</td>
<td width="27%">
<?= $email;?>
</td>
<td width="21%">
<?= $tel;?>
</td>
</tr>
</table>
<?}?>
<div align="center"><br>
มีจำนวน Recored ทั้งหมด
<?= $Num_Rows;?>
รวมทั้งหมด : <b>
<?=$Num_Pages;?>
</b> หน้า :
<?/* สร้างปุ่มย้อนกลับ */
if($Prev_Page)
echo " <a href='$PHP_SELF?Page=$Prev_Page'><< ย้อนกลับ </a>";
for($i=1; $i<$Num_Pages; $i++){
if($i != $Page)
echo "[<a href='$PHP_SELF?Page=$i'>$i</a>]";
else
echo "<b> $i </b>";
}
/*สร้างปุ่มเดินหน้า */
if($Page!=$Num_Pages)
echo "<a href ='$PHP_SELF?Page=$Next_Page'> หน้าถัดไป>> </a>";

?>

</div>
</body>
</html>

3

/* ตั้งค่า แสดงผลต่อหน้า $Per_Page */

$Per_Page =2; // ตรงนี้ตั้งจำนวนที่ต้องการแสดงต่อหน้าครับ
if(!$Page)
$Page=1;

4

ว้าววววววววว โดนใจมากครับ ^^"
5

เกิดอาการงง กับ {}  ของ if กับ else อ่ะครับ
รบกวนด้วยครับ
6

$sql .= " Where 1 Order by id Desc LIMIT $Page_start , $Per_Page";

งง ตรง where 1 อะครับช่วยอธิบายที่ ขอบคุณครับ

7

Where 1 ก็เหมือนกับ ไม่มี WHere แหละครับ ไม่ต้องคิดอะไรมาก บางทีเราก็ติดกับสิ่งที่เห็นจาก phpmyadmin มากไปครับ 

8

ขอบคุณมาครับ คุณ goragod

9
^