|
|
|
จะแบ่งหน้า จากหน้า show ตัวแปรจาก session และ array แสดง สินค้าต้องทำไงครับ แนะนำทีครับ |
|
|
|
|
|
|
|
เขียนให้ครับ การแบ่งหน้า ข้อมูลจาก Array
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com</title>
</head>
<body>
<?
for($i=0;$i<=30;$i++)
{
$arr[$i] = $i * 10;
}
$Num_Rows = count($arr) - 1;
$Per_Page = 5; // 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;
}
$Page_End = $Per_Page * $Page;
IF ($Page_End > $Num_Rows)
{
$Page_End = $Num_Rows;
}
?>
<table width="200" border="1">
<tr>
<th width="100"> <div align="center">Index </div></th>
<th width="100"> <div align="center">Value </div></th>
</tr>
<?
for($i=$Page_Start;$i<$Page_End;$i++)
{
?>
<tr>
<td><div align="center"><?=$i?></div></td>
<td><?=$arr[$i];?></td>
</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>
|
|
|
|
|
Date :
2012-06-14 09:57:31 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเป็น Session แบบ Array แล้วแบ่งหน้า น่าจะเป็นแบบนี้ครับ
Code (PHP)
<?
for($i=0;$i<=30;$i++)
{
$_SESSION["strProductID"][$i] = "x".$i;
}
$Num_Rows = count($_SESSION["strProductID"]) - 1;
$Per_Page = 5; // 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;
}
$Page_End = $Per_Page * $Page;
IF ($Page_End > $Num_Rows)
{
$Page_End = $Num_Rows;
}
?>
<table width="200" border="1">
<tr>
<th width="100"> <div align="center">Index </div></th>
<th width="100"> <div align="center">Value </div></th>
</tr>
<?
for($i=$Page_Start;$i<$Page_End;$i++)
{
?>
<tr>
<td><div align="center"><?=$i?></div></td>
<td><?=$_SESSION["strProductID"][$i];?></td>
</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> ";
}
?>
|
|
|
|
|
Date :
2012-06-14 09:59:31 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมแค่สร้างตัวแปร array แบบ session ไว้ทดสอบครับ คุณก็เอาไปใช้ได้ตามปกติครับ
|
|
|
|
|
Date :
2012-06-14 11:39:48 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อครับ มีอีกอย่างครับ ยังงง อะครับ จาก โค้ด $Num_Rows = count($_SESSION["strProductID"]) - 1; ทำไมต้องเอาไป - 1 ด้วยครับ ในเมื่อได้จำนวนแถวมาแล้วอะครับ
|
|
|
|
|
Date :
2012-06-14 12:59:47 |
By :
theyounggun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพราะผมใช้ array เริ่มต้นจาก 0 แต่เวลา count มันนับเป็นจำนวนครับ เช่นใน rows มีอยู่ 5 ถ้าคุณใช้ 0-5 มันก็ได้ 6
|
|
|
|
|
Date :
2012-06-14 13:10:18 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าข้อมูลที่เราเก็บเป็น array มาจากหลายตาราง และข้อมูลแต่ละตารางมีจำนวน column ไม่เท่ากันค่ะ จะต้องทำอย่างไรดีคะ พอดีว่า แสดงข้อมูลออกมาได้แล้ว ได้จำนวนหน้าตามที่ต้องการแล้ว แต่ว่า พอกดเลือกไปที่ หน้า 2 ข้อมูลก็หายไป เลยค่ะ ต้องแกอย่างไรดีคะ
รวบกวนด้วยนะคะ ขอบคุณค่ะ
|
|
|
|
|
Date :
2013-01-17 11:11:41 |
By :
kuzneb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอน for $Num_Pages ได้ส่งค่าตัวแปร $i หรือตัวแปรอื่นๆไปหรือเปล่าครับ
หรือไม่งั้น วาง code เลยครับ
|
|
|
|
|
Date :
2013-01-17 12:27:13 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|