Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามเรื่องแบ่งหน้า เลข no. แถวไม่นับต่อเนื่อง หน้าแรกนับได้ปกติแต่หน้าต่อ ๆ ไป มัน *2 ครับ



 

สอบถามเรื่องแบ่งหน้า เลข no. แถวไม่นับต่อเนื่อง หน้าแรกนับได้ปกติแต่หน้าต่อ ๆ ไป มัน *2 ครับ

 



Topic : 118263



โพสกระทู้ ( 464 )
บทความ ( 0 )



สถานะออฟไลน์




เลข 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







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-08-07 10:41:03 By : littlebeer View : 1124 Reply : 5
 

 

No. 1

Guest


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
 


 

No. 2



โพสกระทู้ ( 464 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : WiTT เมื่อวันที่ 2015-08-07 10:54:04
รายละเอียดของการตอบ ::
ผม cap หน้าจอมาไม่หมดครับ cap มาแค่นั้น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 11:02:53 By : littlebeer
 

 

No. 3



โพสกระทู้ ( 200 )
บทความ ( 0 )



สถานะออฟไลน์


118.
$no = $Per_Page * ($Page - 1);
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 11:30:13 By : CasanovaKung
 


 

No. 4

Guest


ตอบความคิดเห็นที่ : 2 เขียนโดย : littlebeer เมื่อวันที่ 2015-08-07 11:02:53
รายละเอียดของการตอบ ::
ครับ ตาม No. 3 เลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 12:09:25 By : WiTT
 


 

No. 5



โพสกระทู้ ( 464 )
บทความ ( 0 )



สถานะออฟไลน์


โอ้ ขอบคุณมาก ๆ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 13:00:59 By : littlebeer
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องแบ่งหน้า เลข no. แถวไม่นับต่อเนื่อง หน้าแรกนับได้ปกติแต่หน้าต่อ ๆ ไป มัน *2 ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่