|
|
|
สอบถามเรื่องแบ่งหน้า เลข no. แถวไม่นับต่อเนื่อง หน้าแรกนับได้ปกติแต่หน้าต่อ ๆ ไป มัน *2 ครับ |
|
|
|
|
|
|
|
เลข no. แถวไม่นับต่อเนื่อง หน้าแรกนับได้ปกติแต่หน้าสองไป มัน *2 ครับ per_page =50 แต่หน้าสามก็นับต่อจากหน้าสอง
หน้า 1 มันนับ 1-50 ถูก
หน้า 2 มันนับ 101-150
หน้า 3 มันนับ 151-165
โค้ดยาวนิดนึงนะครับ
Code (PHP)
<form name="frmMain1" action="" method="POST">
<?php
$start = $_GET["start"];
$end = $_GET["end"];
$search = $db->prepare("SELECT
tbl_logs.start,
tbl_material.call_on,
tbl_material.title,
tbl_machine.mName
FROM
tbl_logs
INNER JOIN tbl_material ON tbl_material.logs_id = tbl_logs.Id
INNER JOIN tbl_machine ON tbl_logs.machine_id = tbl_machine.id
WHERE DATE(tbl_logs.start) BETWEEN :start AND :end ");
$search->bindParam(':start',$start,PDO::PARAM_INT);
$search->bindParam(':end',$end,PDO::PARAM_INT);
// $search->bindParam(':d',$d);
$search->execute();
$Num_Rows = $search->rowCount();
$Per_Page = 50; // 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;
}
$search1 = $db->prepare("SELECT
tbl_logs.start,
tbl_material.call_on,
tbl_material.title,
tbl_machine.mName
FROM
tbl_logs
INNER JOIN tbl_material ON tbl_material.logs_id = tbl_logs.Id
INNER JOIN tbl_machine ON tbl_logs.machine_id = tbl_machine.id
WHERE DATE(tbl_logs.start) BETWEEN :start AND :end
ORDER BY start DESC
LIMIT :Page_Start , :Per_Page");
//WHERE YEAR(tbl_logs.start) = :y AND DAY(tbl_logs.start) = :d AND MONTH(tbl_logs.start) = :m
$search1->bindParam(':start',$start,PDO::PARAM_INT);
$search1->bindParam(':end',$end,PDO::PARAM_INT);
// $search1->bindParam(':m',$m,PDO::PARAM_INT);
$search1->bindParam(':Page_Start',$Page_Start,PDO::PARAM_INT);
$search1->bindParam(':Per_Page',$Per_Page,PDO::PARAM_INT);
$search1->execute();
?>
<div class="col-md-6 col-md-offset-1 form-inline">
<div class="input-group">
<input type="text" class="input-sm form-control" name="start" id="start" value="<?php if(isset($_GET['start'])) { echo $_GET['start']; }?>" placeholder="click to show datepicker"/>
<span class="input-group-addon">ถึง</span>
<input type="text" class="input-sm form-control" name="end" id="end" value="<?php if(isset($_GET['end'])) { echo $_GET['end']; }?>" placeholder="click to show datepicker"/>
</div>
<input type="button" name="OK" value="OK" class="btn btn-primary btn-sm" OnClick="javascript:window.location='?start='+document.frmMain1.start.value+'&end='+document.frmMain1.end.value;">
</div>
<div class="col-md-2 col-md-offset-2">
<input type="text" id="search" placeholder="Search..." class="form-control input-sm" />
</div>
<div class="col-md-4 col-md-offset-1 form-inline" style="padding-top:20px">
Total <?=$Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<select name="ddlPage" class="form-control input-sm">
<?php
for($i=1; $i<=$Num_Pages; $i++){
?>
}
<option value="<?=$i;?>" <?php if($Page==$i){echo "selected";}?>><?=$i;?></option>
<?php
}
?>
</select>
<input type="button" name="OK" value="OK" class="btn btn-primary btn-sm" OnClick="javascript:window.location='?Page='+document.frmMain1.ddlPage.value+'&start='+document.frmMain1.start.value+'&end='+document.frmMain1.end.value;">
</div>
<div class="col-md-10 col-md-offset-1" style="padding-top:10px">
<table class="table table-hover">
<thead>
<tr>
<th style="text-align: center;">No.</th>
<th style="text-align: center;">ชื่อเครื่อง</th>
<th style="text-align: center;">รหัสสื่อ</th>
<th style="text-align: center;">ชื่อเรื่อง</th>
<th style="text-align: center;">ว/ด/ป (ยืม)</th>
</tr>
</thead>
<tbody>
<?php
$no = 0;
if ($Page > 1)
{
$no = $Per_Page * $Page;
}
while ($row = $search1->fetch(PDO::FETCH_ASSOC))
{
$no++;
?>
<tr>
<td style="width: 5%; text-align: center;"><?=$no;?></td>
<td style="width: 13%"><?=$row['mName']; ?></td>
<td style="width: 13%; text-align: center;"><?=$row['call_on']; ?></td>
<td style="width: 25%"><?=$row['title']; ?></td>
<td style="width: 10%"><?=$row['start']; ?></td>
</tr>
<?php } //while ?>
</tbody>
</table>
<br>
</div>
</form>
Tag : PHP, MySQL, HTML/CSS, JavaScript, Ajax, jQuery
|
|
|
|
|
|
Date :
2015-08-07 10:41:03 |
By :
littlebeer |
View :
1121 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
if ($Page > 1){
$no = $Per_Page * $Page;
}
ตัวแปร $Per_Page ผมเห็นคุณกำหนดค่าเป็น 50
ตัวแปร $Page เมื่อมีมากกว่า 1 นั่นก็คือหน้า 2
เมื่อนำ $Per_Page และ $Page มาคูณกัน ตัวแปร $no จะมีค่าเป็น 100;
เพราะงั้นในหน้า 2 มันจึงนับที่ 101 ถูกแล้ว ครับ
แต่ที่ผิดคือ ข้อมูลต่อหน้าคุณกำหนดให้มันแสดงหน้าละ 50 รายการ ทำไมหน้าแรกมันแสดงเพียง 10 รายการ
|
|
|
|
|
Date :
2015-08-07 10:54:04 |
By :
WiTT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118.
$no = $Per_Page * ($Page - 1);
|
|
|
|
|
Date :
2015-08-07 11:30:13 |
By :
CasanovaKung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โอ้ ขอบคุณมาก ๆ ครับ
|
|
|
|
|
Date :
2015-08-07 13:00:59 |
By :
littlebeer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|