|
|
|
ผมผิดตรงไหนหรอครับ การแบ่งหน้า PHP Access ช่วยดูให้ทีครับ |
|
|
|
|
|
|
|
ผมต้องการแบ่งหน้า โดยจะใก้มี 5 หน้า หน้านึงต้องการให้มีข้อมูล 10 ข้อมูล ข้อมูลทั่งหมดผมมี 50 ข้อมูลครับ
ต้องแก้ไขตรงไหนหรอครับ
ฐานข้อมูลผมครับ
http://www.mediafire.com/?258pcs277d5184g
Code ของผม
Code (PHP)
<!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>
<link href="css/global.css" media="screen" rel="stylesheet" type="text/css" />
<link href="css/style.css" media="screen" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<div id="header">
<h1 id="logo"><img alt="#" src="css/images/logo.png" /> </h1>
</div>
<ul id="nav" class="clearfix">
<li><a href="index.html">หน้าแรก</a> </li>
<li><a href="About_us.html">เกี่ยวกับเรา</a> </li>
<li><a href="Contact_us.html">ติดต่อเรา</a> </li>
<li><a href="Payment.html">ชำระเงิน</a> </li>
</ul>
<div id="content" class="clearfix">
<div id="col_left" class="clearfix">
<ul class="main_box1 clearfix">
รายการสินค้า
<li><a href="#">แหวน</a></li>
<li><a href="#">กำไล</a></li>
<li><a href="#">สายนาฬิกา</a></li>
<li><a href="#">หัวเข็มขัด</a></li>
<li><a href="#">จี้</a></li>
<li><a href="#">ต่างหู</a></li>
</ul>
<div class="main_box2 clearfix">
</div>
</div>
<div id="col_right" class="clearfix">
<div class="main_box3 clearfix">
<div class="detail">
<img alt="#" class="left" src="images/ring1.png" />
<p class="right">ชื่อสินค้า : แหวนเงินไขว้<br />
ราคา : 800<br />
รายละเอียดสินค้า : แหวนเงินไขว้หัวงาช้าง</p>
</div>
<?php
$conn=odbc_connect ('ac','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM Product";
$rs=odbc_exec($conn,$sql);
while (odbc_fetch_row($rs))
{
$proName=odbc_result($rs, "ProductName");
$proprice=odbc_result($rs, "ProductPrice");
$proDetail=odbc_result($rs, "ProductDetail");
$proimg=odbc_result($rs, "Productimg");
echo "<div class=detail>";
echo "<img class=left src=images/$proimg alt=></img>";
echo "<p class=right>";
echo "ชื่อสินค้า :$proName";
echo "<br>";
echo "รายละเอียดสินค้า :$proDetail";
echo "<br>";
echo "ราคา :$proprice";
echo "</p>";
echo "</div>";
}
odbc_close($conn);
echo "</div>"
?>
<?php
$conn=odbc_connect ('ac','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT TOP 20 * From Product ORDER BY ProductID"; // LIMIT $Page,$Per_Page
// "SELECT COUNT(*) FROM Product" //SELECT TOP 10 * From Product
$rs=odbc_exec($conn,$sql);
$Num_Rows = 0;
while(odbc_fetch_row($rs))$Num_Rows++;
$Per_Page = 8;
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page)+1;
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;
}
$Page_End = $Per_Page * $Page;
if($Page_End > $Num_Rows)
{
$Page_End = $Num_Rows;
}
?>
<?
// ตรงนี้เอา code อะไรมาแทรกหรอครับ
?>
<?
for($i=$Page_Start;$i<=$Page_End;$i++)
{
$objResult = odbc_fetch_array($rs,$i);
// ตรงนี้เอา code อะมาแทรกหรอครับ
<br>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?php
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> ";
}
?>
</div>
</div>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
Tag : PHP, Ms Access, HTML/CSS
|
ประวัติการแก้ไข 2010-12-28 10:06:00 2010-12-28 10:06:27
|
|
|
|
|
Date :
2010-12-28 09:57:57 |
By :
thegunmanolo |
View :
855 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองแก้ code ให้
ลองเอาไป run ดูครับว่าได้ไหม
Code (PHP)
<!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" />
<link href="css/global.css" media="screen" rel="stylesheet" type="text/css" />
<link href="css/style.css" media="screen" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<div id="header">
<h1 id="logo"><img alt="#" src="css/images/logo.png" /> </h1>
</div>
<ul id="nav" class="clearfix">
<li><a href="index.html">หน้าแรก</a> </li>
<li><a href="About_us.html">เกี่ยวกับเรา</a> </li>
<li><a href="Contact_us.html">ติดต่อเรา</a> </li>
<li><a href="Payment.html">ชำระเงิน</a> </li>
</ul>
<div id="content" class="clearfix">
<div id="col_left" class="clearfix">
<ul class="main_box1 clearfix">
รายการสินค้า
<li><a href="#">แหวน</a></li>
<li><a href="#">กำไล</a></li>
<li><a href="#">สายนาฬิกา</a></li>
<li><a href="#">หัวเข็มขัด</a></li>
<li><a href="#">จี้</a></li>
<li><a href="#">ต่างหู</a></li>
</ul>
<div class="main_box2 clearfix">
</div>
</div>
<div id="col_right" class="clearfix">
<div class="main_box3 clearfix">
<div class="detail">
<img alt="#" class="left" src="images/ring1.png" />
<p class="right">ชื่อสินค้า : แหวนเงินไขว้<br />
ราคา : 800<br />
รายละเอียดสินค้า : แหวนเงินไขว้หัวงาช้าง</p>
</div>
<?php
$conn=odbc_connect ('ac','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM Product";
$rs=odbc_exec($conn,$sql);
$Num_Rows=0;
while(odbc_fetch_array($rs)){ $Num_Rows++; }
$Per_Page = 9 ;
$Page = $_GET["Page"];
if(!$_GET["Page"])
{ $Page = 1; }
$Prev_Page = $Page-1 ;
$Next_Page = $Page+1 ;
$Page_Start = (($Per_Page*$Page)-$Per_Page)+1;
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;
}
$Page_End = $Per_Page * $Page;
if($Page_End > $Num_Rows)
{
$Page_End = $Num_Rows;
}
for($i=$Page_Start;$i<=$Page_End;$i++)
{
odbc_fetch_array($rs,$i);
$proName=odbc_result($rs, "ProductName");
$proprice=odbc_result($rs, "ProductPrice");
$proDetail=odbc_result($rs, "ProductDetail");
$proimg=odbc_result($rs, "Productimg");
echo "<div class=detail>";
echo "<img class=left src=images/$proimg alt=></img>";
echo "<p class=right>";
echo "ชื่อสินค้า :$proName";
echo "<br>";
echo "รายละเอียดสินค้า :$proDetail";
echo "<br>";
echo "ราคา :$proprice";
echo "</p>";
echo "</div>";
}
odbc_close($conn);
echo "</div>"
?>
<br />
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?php
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> ";
}
?>
</div>
</div>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
|
ประวัติการแก้ไข 2010-12-28 10:37:29
|
|
|
|
Date :
2010-12-28 10:32:20 |
By :
lightkung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โอ้ววขอบคุณมากๆครับ
ถ้าไม่เป็นการรรบกวนช่วย อธิบาย หน่อยสิครับ ว่าเพิ่มอะไรมาบ้าง
ต้องแก้ไขตรงไหนหรอครับ
ขอบคุณมากๆครับ
|
|
|
|
|
Date :
2010-12-28 10:42:47 |
By :
thegunmanolo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อย่างแรงผมตัด code ของคุณทิ้งหมดเลย เหลือไว้แค่ ( ส่วนบนผมจะไม่ทำการแก้ไขนะครับ )
Code (PHP)
<?php
$conn=odbc_connect ('ac','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM Product";
$rs=odbc_exec($conn,$sql);
while (odbc_fetch_row($rs))
{
$proName=odbc_result($rs, "ProductName");
$proprice=odbc_result($rs, "ProductPrice");
$proDetail=odbc_result($rs, "ProductDetail");
$proimg=odbc_result($rs, "Productimg");
echo "<div class=detail>";
echo "<img class=left src=images/$proimg alt=></img>";
echo "<p class=right>";
echo "ชื่อสินค้า :$proName";
echo "<br>";
echo "รายละเอียดสินค้า :$proDetail";
echo "<br>";
echo "ราคา :$proprice";
echo "</p>";
echo "</div>";
}
odbc_close($conn);
echo "</div>"
?>
จากนั้นผมทำการหาจำนวนสินค้าทั้งหมดที่มีอยู่ในฐานข้อมูล โดยเก็บไว้ที่ตัวแปร $Num_Rows และก็ใช้ code ที่ทำการแบ่งหน้าเพิ่มเข้าไปด้วย
Code (PHP)
$conn=odbc_connect ('ac','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM Product";
$rs=odbc_exec($conn,$sql);
$Num_Rows=0;
while(odbc_fetch_array($rs)){ $Num_Rows++; }
$Per_Page = 9 ;
$Page = $_GET["Page"];
if(!$_GET["Page"])
{ $Page = 1; }
$Prev_Page = $Page-1 ;
$Next_Page = $Page+1 ;
$Page_Start = (($Per_Page*$Page)-$Per_Page)+1;
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;
}
$Page_End = $Per_Page * $Page;
if($Page_End > $Num_Rows)
{
$Page_End = $Num_Rows;
}
while (odbc_fetch_row($rs))
{
$proName=odbc_result($rs, "ProductName");
$proprice=odbc_result($rs, "ProductPrice");
$proDetail=odbc_result($rs, "ProductDetail");
$proimg=odbc_result($rs, "Productimg");
echo "<div class=detail>";
echo "<img class=left src=images/$proimg alt=></img>";
echo "<p class=right>";
echo "ชื่อสินค้า :$proName";
echo "<br>";
echo "รายละเอียดสินค้า :$proDetail";
echo "<br>";
echo "ราคา :$proprice";
echo "</p>";
echo "</div>";
}
odbc_close($conn);
echo "</div>"
หลังจากนั้นผมก็แก้ตรงส่วน while() Loop เปลี่ยนเป็น For() Loop เพื่อที่จะกำหนดเงื่อนไขว่าจะให้ start ตรงไหนและ end ตรงไหนในแต่ละหน้า
Code (PHP)
$conn=odbc_connect ('ac','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM Product";
$rs=odbc_exec($conn,$sql);
$Num_Rows=0;
while(odbc_fetch_array($rs)){ $Num_Rows++; }
$Per_Page = 9 ;
$Page = $_GET["Page"];
if(!$_GET["Page"])
{ $Page = 1; }
$Prev_Page = $Page-1 ;
$Next_Page = $Page+1 ;
$Page_Start = (($Per_Page*$Page)-$Per_Page)+1;
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;
}
$Page_End = $Per_Page * $Page;
if($Page_End > $Num_Rows)
{
$Page_End = $Num_Rows;
}
for($i=$Page_Start;$i<=$Page_End;$i++)
{
odbc_fetch_array($rs,$i)
$proName=odbc_result($rs, "ProductName");
$proprice=odbc_result($rs, "ProductPrice");
$proDetail=odbc_result($rs, "ProductDetail");
$proimg=odbc_result($rs, "Productimg");
echo "<div class=detail>";
echo "<img class=left src=images/$proimg alt=></img>";
echo "<p class=right>";
echo "ชื่อสินค้า :$proName";
echo "<br>";
echo "รายละเอียดสินค้า :$proDetail";
echo "<br>";
echo "ราคา :$proprice";
echo "</p>";
echo "</div>";
}
odbc_close($conn);
echo "</div>"
และสุดท้ายผมก็นำ code ที่ใช้ในการเปลี่ยน page มาไว้ล่างสุด นั้นเอง
Code (PHP)
<!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" />
<link href="css/global.css" media="screen" rel="stylesheet" type="text/css" />
<link href="css/style.css" media="screen" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<div id="header">
<h1 id="logo"><img alt="#" src="css/images/logo.png" /> </h1>
</div>
<ul id="nav" class="clearfix">
<li><a href="index.html">หน้าแรก</a> </li>
<li><a href="About_us.html">เกี่ยวกับเรา</a> </li>
<li><a href="Contact_us.html">ติดต่อเรา</a> </li>
<li><a href="Payment.html">ชำระเงิน</a> </li>
</ul>
<div id="content" class="clearfix">
<div id="col_left" class="clearfix">
<ul class="main_box1 clearfix">
รายการสินค้า
<li><a href="#">แหวน</a></li>
<li><a href="#">กำไล</a></li>
<li><a href="#">สายนาฬิกา</a></li>
<li><a href="#">หัวเข็มขัด</a></li>
<li><a href="#">จี้</a></li>
<li><a href="#">ต่างหู</a></li>
</ul>
<div class="main_box2 clearfix">
</div>
</div>
<div id="col_right" class="clearfix">
<div class="main_box3 clearfix">
<div class="detail">
<img alt="#" class="left" src="images/ring1.png" />
<p class="right">ชื่อสินค้า : แหวนเงินไขว้<br />
ราคา : 800<br />
รายละเอียดสินค้า : แหวนเงินไขว้หัวงาช้าง</p>
</div>
<?php
$conn=odbc_connect ('ac','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM Product";
$rs=odbc_exec($conn,$sql);
$Num_Rows=0;
while(odbc_fetch_array($rs)){ $Num_Rows++; }
$Per_Page = 9 ;
$Page = $_GET["Page"];
if(!$_GET["Page"])
{ $Page = 1; }
$Prev_Page = $Page-1 ;
$Next_Page = $Page+1 ;
$Page_Start = (($Per_Page*$Page)-$Per_Page)+1;
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;
}
$Page_End = $Per_Page * $Page;
if($Page_End > $Num_Rows)
{
$Page_End = $Num_Rows;
}
for($i=$Page_Start;$i<=$Page_End;$i++)
{
odbc_fetch_array($rs,$i);
$proName=odbc_result($rs, "ProductName");
$proprice=odbc_result($rs, "ProductPrice");
$proDetail=odbc_result($rs, "ProductDetail");
$proimg=odbc_result($rs, "Productimg");
echo "<div class=detail>";
echo "<img class=left src=images/$proimg alt=></img>";
echo "<p class=right>";
echo "ชื่อสินค้า :$proName";
echo "<br>";
echo "รายละเอียดสินค้า :$proDetail";
echo "<br>";
echo "ราคา :$proprice";
echo "</p>";
echo "</div>";
}
odbc_close($conn);
echo "</div>"
?>
<br />
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?php
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> ";
}
?>
</div>
</div>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
|
|
|
|
|
Date :
2010-12-28 10:54:08 |
By :
lightkung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากๆๆครับ ผมกำลังศึกษาอยู่อะครับ อธิบายแบบนี้เข้าใจเลยครับ ^^
|
|
|
|
|
Date :
2010-12-28 11:01:39 |
By :
thegunmanolo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|