ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming+1 ให้เลยครับ สอบถามเกี่ยวกับ PHP เรื่องของการแบ่งหน้าครับ รบกวนอีกกระทู้นะครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: +1 ให้เลยครับ สอบถามเกี่ยวกับ PHP เรื่องของการแบ่งหน้าครับ รบกวนอีกกระทู้นะครับ  (อ่าน 2907 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« เมื่อ: 26 กุมภาพันธ์ 2013, 21:02:29 »

ขอแรงพี่ ๆเพื่อน ๆ สมาชิกแนะนำีครับ เรื่องของ php ในการแบ่งหน้าในรูปแบบอย่างนี้อ่ะครับ
http://variety.teenee.com/
คือแบ่งเป็นช่วง ๆ น่ะครับ

ขอบคุณมากครับ
บันทึกการเข้า

เหนื่อย..
comscizaa
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 123
ออฟไลน์ ออฟไลน์

กระทู้: 1,854



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 26 กุมภาพันธ์ 2013, 21:18:55 »

ใน thaicreate.com มีครับ ลองหาดูนะครับ แล้วนำมาปรับเอาครับ ผมแนะนำในทางที่ดีนะครับ ถ้าคิดจะเป็นผู้รับทำเว็บและจำหน่ายสคริปเว็บสำเร็จรูป อย่ามาโพสต์ถามแนวนี้เลยครับ มันเสียเครดิตตัวเรานะครับ ลูกค้าเขาจะมองว่าไม่เป็นมืออาชีพเอาอ่ะครับ ควรหาในอากู๋เอาครับมีทุกอย่างที่คุณอยากรู้ครับ

ปล. ผมอยากแนะนำในฐานะผู้ร่วมอาชีพเดียวกันนะครับ อย่ามาม่ากับผมนะครับ แค่นี้ผมก็ขึ้นอืดพอแล้วครับ
บันทึกการเข้า

ThaNaButS
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 67
ออฟไลน์ ออฟไลน์

กระทู้: 1,197



ดูรายละเอียด
« ตอบ #2 เมื่อ: 26 กุมภาพันธ์ 2013, 21:20:52 »

ลองดูพวก my_sql limit ครับ
บันทึกการเข้า
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #3 เมื่อ: 26 กุมภาพันธ์ 2013, 21:26:41 »

ใน thaicreate.com มีครับ ลองหาดูนะครับ แล้วนำมาปรับเอาครับ ผมแนะนำในทางที่ดีนะครับ ถ้าคิดจะเป็นผู้รับทำเว็บและจำหน่ายสคริปเว็บสำเร็จรูป อย่ามาโพสต์ถามแนวนี้เลยครับ มันเสียเครดิตตัวเรานะครับ ลูกค้าเขาจะมองว่าไม่เป็นมืออาชีพเอาอ่ะครับ ควรหาในอากู๋เอาครับมีทุกอย่างที่คุณอยากรู้ครับ

ปล. ผมอยากแนะนำในฐานะผู้ร่วมอาชีพเดียวกันนะครับ อย่ามาม่ากับผมนะครับ แค่นี้ผมก็ขึ้นอืดพอแล้วครับ

ขอบคุณครับสำหรับคำแนะนำ แต่ผมทำไม่ได้ ผมก็ต้องหาความรู้จากหลาย ๆ ที่
ผมก็เชื่อว่าไม่มีใครเก่งทุกเรื่อง ไม่มีมาม่าแน่นอนครับ ผมหาหลายที่ ถ้าไม่ได้แล้ว ถึงมาโพสต์เป็นที่สุดท้าย
ผมไม่ได้มืออาชีพและไม่ได้เก่งไรมากครับ ใครจะมองยังไงก็ช่างเค้าเถอะเค้า
ขอบคุณแนะนำครับ

ปล. ตอนเรียนผมโดนสอนจากอาจารย์ว่า ถามไปเถอะแม้ว่าคำตอบนั้นจะมาจากเด็กตัวเล็กก็ตามก็อย่าไปอายเค้า
ถ้าเค้าให้ความรู้และวิชาแก่เรา  wanwan020 wanwan020 wanwan020 wanwan020
บันทึกการเข้า

เหนื่อย..
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #4 เมื่อ: 26 กุมภาพันธ์ 2013, 21:27:42 »

ลองดูพวก my_sql limit ครับ

ขอบคุณมากครับ + 1 ไปแรง ๆ อิอิ wanwan017
บันทึกการเข้า

เหนื่อย..
ThaNaButS
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 67
ออฟไลน์ ออฟไลน์

กระทู้: 1,197



ดูรายละเอียด
« ตอบ #5 เมื่อ: 26 กุมภาพันธ์ 2013, 21:29:37 »

http://www.webthaidd.com/php/webthaidd_article_90_.html
บันทึกการเข้า
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #6 เมื่อ: 26 กุมภาพันธ์ 2013, 21:32:05 »



โอ๊ววท่านสุดยอดเลยครับ มีไรให้ช่วยก็บอกได้นะครับ ยินดี น้ำใจงามแท้ wanwan017
บันทึกการเข้า

เหนื่อย..
comscizaa
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 123
ออฟไลน์ ออฟไลน์

กระทู้: 1,854



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 26 กุมภาพันธ์ 2013, 21:42:05 »

ใน thaicreate.com มีครับ ลองหาดูนะครับ แล้วนำมาปรับเอาครับ ผมแนะนำในทางที่ดีนะครับ ถ้าคิดจะเป็นผู้รับทำเว็บและจำหน่ายสคริปเว็บสำเร็จรูป อย่ามาโพสต์ถามแนวนี้เลยครับ มันเสียเครดิตตัวเรานะครับ ลูกค้าเขาจะมองว่าไม่เป็นมืออาชีพเอาอ่ะครับ ควรหาในอากู๋เอาครับมีทุกอย่างที่คุณอยากรู้ครับ

ปล. ผมอยากแนะนำในฐานะผู้ร่วมอาชีพเดียวกันนะครับ อย่ามาม่ากับผมนะครับ แค่นี้ผมก็ขึ้นอืดพอแล้วครับ


ขอบคุณครับสำหรับคำแนะนำ แต่ผมทำไม่ได้ ผมก็ต้องหาความรู้จากหลาย ๆ ที่
ผมก็เชื่อว่าไม่มีใครเก่งทุกเรื่อง ไม่มีมาม่าแน่นอนครับ ผมหาหลายที่ ถ้าไม่ได้แล้ว ถึงมาโพสต์เป็นที่สุดท้าย
ผมไม่ได้มืออาชีพและไม่ได้เก่งไรมากครับ ใครจะมองยังไงก็ช่างเค้าเถอะเค้า
ขอบคุณแนะนำครับ

ปล. ตอนเรียนผมโดนสอนจากอาจารย์ว่า ถามไปเถอะแม้ว่าคำตอบนั้นจะมาจากเด็กตัวเล็กก็ตามก็อย่าไปอายเค้า
ถ้าเค้าให้ความรู้และวิชาแก่เรา  wanwan020 wanwan020 wanwan020 wanwan020
มันก็ถูกตามที่ท่านพูดมาครับ แต่มันเป็นในความคิดเห็นส่วนตัวของผมครับ ทุกท่านที่ให้มา อาจยังไม่ตรงตามที่ท่านต้องการ
ผมหามาให้นะครับ => http://www.thaicreate.com/comm...nity/php-mysql-pagination.html ชอบก็ + ให้ผมด้วยละกันนะครับ ผมชอบเลขสวย 99 ในเว็บนี้มีอีกเยอะที่ท่านยังหาไม่เจอ ผมมาถึงจุดนี้ได้ก็เพราะ 2 เว็บนี้แหละครับ
1. thaicreate.com จุดเริ่มต้นการเขียนเว็บ
2. thaiseoboard.com จุดเริ่มต้นของนิยามคำว่า IM
บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #8 เมื่อ: 26 กุมภาพันธ์ 2013, 21:46:38 »

ใน thaicreate.com มีครับ ลองหาดูนะครับ แล้วนำมาปรับเอาครับ ผมแนะนำในทางที่ดีนะครับ ถ้าคิดจะเป็นผู้รับทำเว็บและจำหน่ายสคริปเว็บสำเร็จรูป อย่ามาโพสต์ถามแนวนี้เลยครับ มันเสียเครดิตตัวเรานะครับ ลูกค้าเขาจะมองว่าไม่เป็นมืออาชีพเอาอ่ะครับ ควรหาในอากู๋เอาครับมีทุกอย่างที่คุณอยากรู้ครับ

ปล. ผมอยากแนะนำในฐานะผู้ร่วมอาชีพเดียวกันนะครับ อย่ามาม่ากับผมนะครับ แค่นี้ผมก็ขึ้นอืดพอแล้วครับ


ขอบคุณครับสำหรับคำแนะนำ แต่ผมทำไม่ได้ ผมก็ต้องหาความรู้จากหลาย ๆ ที่
ผมก็เชื่อว่าไม่มีใครเก่งทุกเรื่อง ไม่มีมาม่าแน่นอนครับ ผมหาหลายที่ ถ้าไม่ได้แล้ว ถึงมาโพสต์เป็นที่สุดท้าย
ผมไม่ได้มืออาชีพและไม่ได้เก่งไรมากครับ ใครจะมองยังไงก็ช่างเค้าเถอะเค้า
ขอบคุณแนะนำครับ

ปล. ตอนเรียนผมโดนสอนจากอาจารย์ว่า ถามไปเถอะแม้ว่าคำตอบนั้นจะมาจากเด็กตัวเล็กก็ตามก็อย่าไปอายเค้า
ถ้าเค้าให้ความรู้และวิชาแก่เรา  wanwan020 wanwan020 wanwan020 wanwan020
มันก็ถูกตามที่ท่านพูดมาครับ แต่มันเป็นในความคิดเห็นส่วนตัวของผมครับ ทุกท่านที่ให้มา อาจยังไม่ตรงตามที่ท่านต้องการ
ผมหามาให้นะครับ => http://www.thaicreate.com/comm...nity/php-mysql-pagination.html ชอบก็ + ให้ผมด้วยละกันนะครับ ผมชอบเลขสวย 99 ในเว็บนี้มีอีกเยอะที่ท่านยังหาไม่เจอ ผมมาถึงจุดนี้ได้ก็เพราะ 2 เว็บนี้แหละครับ
1. thaicreate.com จุดเริ่มต้นการเขียนเว็บ
2. thaiseoboard.com จุดเริ่มต้นของนิยามคำว่า IM


thaicreate.com ผมเป็นสมาชิกมา 5 ปีแล้วครับ
ตั้งแต่เวอร์ชั่นแรกเลย

+1 ให้แล้วนะครับ ขอบคุณสำหรับน้ำใจครับ
บันทึกการเข้า

เหนื่อย..
gubaaball
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 183
ออฟไลน์ ออฟไลน์

กระทู้: 1,668



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 26 กุมภาพันธ์ 2013, 21:46:45 »

โค๊ด:
<?
$pagelen = 100//จำนวนที่แสดงผลข้อมูลต่อหน้า
$range = 4 ; // ใส่จำนวนที่จะแสดงข้าง เลขปัจจุบัน ก็คือ ถ้าใส่ 2 แล้ว ตอนนี้แสดงอยู่หน้า 4 ก็จะเป็น  2 3 4 5 6 จะแสดงข้างเลข 4 อยู่ 2 จำนวน


$res = $mysql_query("SELECT id FROM table");
$totalrecords = $num_rows = mysql_num_rows($res);

$totalpage = ceil($num_rows / $pagelen);
$goto = ($page-1) * $pagelen; // หาหน้าที่จะกระโดดไป
$start = $page - $range;
$end = $page + $range;
if ($start <= 1) { $start = 1; }
if ($end >= $totalpage) { $end = $totalpage;}

$sql="select * from table limit $goto,$pagelen";
$res=mysql_query($sql);
?>

<div class="PageFoot">
<?
  $link_page=$link_news.'/page=';

  echo " ";
  if ($page > 1) {
  $back = $page - 1;

$linkfirst=$link_page.'1';
echo ""."<font class=\"pagination\">","<a href=\"".$linkfirst."\">","< ! หน้าแรกสุด",'</a>','</font>';
  if ($start > 1) { echo " ... "; }
  }

  if($totalrecords<=$pagelen){
$vv='หน้า :';
  }else{
$vv='';
  }

  for ($i=$start ; $i<=$end ; $i++) {
  if ($i == $page ) {
echo $vv," $i ",'&nbsp;';
  } else  {
$linkmode=$link_page.$i;
echo "<font class=\"pagination\">","<a href=\"".$linkmode."\">"," $i ",'</a>','</font>';
  }
  }

  if ($page < $totalpage) {
  $next = $page  +1;
  if ($end < $totalpage) {
echo " ... ";
}

$linkend=$link_page.$totalpage;
  echo "<font class=\"pagination\">","<a href=\"".$linkend."\">","หน้าท้ายสุด ! >",'</a>','</font>';
  }
//จบโค้ดแบ่งหน้า
?>
</div>


ลองดูครับผมใช้อยู่ ได้มาจากไหนก็ไม่รู้ เผื่อตรงความต้องการ แต่ผมไม่ได้อธิบายไว้น่ะครับพอดีรีบๆ ลองแกะดูครับไม่ยาก  Tongue
บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #10 เมื่อ: 26 กุมภาพันธ์ 2013, 21:52:56 »

โค๊ด:
<?
$pagelen = 100//จำนวนที่แสดงผลข้อมูลต่อหน้า
$range = 4 ; // ใส่จำนวนที่จะแสดงข้าง เลขปัจจุบัน ก็คือ ถ้าใส่ 2 แล้ว ตอนนี้แสดงอยู่หน้า 4 ก็จะเป็น  2 3 4 5 6 จะแสดงข้างเลข 4 อยู่ 2 จำนวน


$res = $mysql_query("SELECT id FROM table");
$totalrecords = $num_rows = mysql_num_rows($res);

$totalpage = ceil($num_rows / $pagelen);
$goto = ($page-1) * $pagelen; // หาหน้าที่จะกระโดดไป
$start = $page - $range;
$end = $page + $range;
if ($start <= 1) { $start = 1; }
if ($end >= $totalpage) { $end = $totalpage;}

$sql="select * from table limit $goto,$pagelen";
$res=mysql_query($sql);
?>

<div class="PageFoot">
<?
  $link_page=$link_news.'/page=';

  echo " ";
  if ($page > 1) {
  $back = $page - 1;

$linkfirst=$link_page.'1';
echo ""."<font class=\"pagination\">","<a href=\"".$linkfirst."\">","< ! หน้าแรกสุด",'</a>','</font>';
  if ($start > 1) { echo " ... "; }
  }

  if($totalrecords<=$pagelen){
$vv='หน้า :';
  }else{
$vv='';
  }

  for ($i=$start ; $i<=$end ; $i++) {
  if ($i == $page ) {
echo $vv," $i ",'&nbsp;';
  } else  {
$linkmode=$link_page.$i;
echo "<font class=\"pagination\">","<a href=\"".$linkmode."\">"," $i ",'</a>','</font>';
  }
  }

  if ($page < $totalpage) {
  $next = $page  +1;
  if ($end < $totalpage) {
echo " ... ";
}

$linkend=$link_page.$totalpage;
  echo "<font class=\"pagination\">","<a href=\"".$linkend."\">","หน้าท้ายสุด ! >",'</a>','</font>';
  }
//จบโค้ดแบ่งหน้า
?>
</div>


ลองดูครับผมใช้อยู่ ได้มาจากไหนก็ไม่รู้ เผื่อตรงความต้องการ แต่ผมไม่ได้อธิบายไว้น่ะครับพอดีรีบๆ ลองแกะดูครับไม่ยาก  Tongue

จัด + ไป ขอบคุณครับ wanwan017
บันทึกการเข้า

เหนื่อย..
batdboyz
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 177
ออฟไลน์ ออฟไลน์

กระทู้: 1,545



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 26 กุมภาพันธ์ 2013, 22:12:33 »

โค๊ด:
<?
$pagelen = 100//จำนวนที่แสดงผลข้อมูลต่อหน้า
$range = 4 ; // ใส่จำนวนที่จะแสดงข้าง เลขปัจจุบัน ก็คือ ถ้าใส่ 2 แล้ว ตอนนี้แสดงอยู่หน้า 4 ก็จะเป็น  2 3 4 5 6 จะแสดงข้างเลข 4 อยู่ 2 จำนวน


$res = $mysql_query("SELECT id FROM table");
$totalrecords = $num_rows = mysql_num_rows($res);

$totalpage = ceil($num_rows / $pagelen);
$goto = ($page-1) * $pagelen; // หาหน้าที่จะกระโดดไป
$start = $page - $range;
$end = $page + $range;
if ($start <= 1) { $start = 1; }
if ($end >= $totalpage) { $end = $totalpage;}

$sql="select * from table limit $goto,$pagelen";
$res=mysql_query($sql);
?>

<div class="PageFoot">
<?
  $link_page=$link_news.'/page=';

  echo " ";
  if ($page > 1) {
  $back = $page - 1;

$linkfirst=$link_page.'1';
echo ""."<font class=\"pagination\">","<a href=\"".$linkfirst."\">","< ! หน้าแรกสุด",'</a>','</font>';
  if ($start > 1) { echo " ... "; }
  }

  if($totalrecords<=$pagelen){
$vv='หน้า :';
  }else{
$vv='';
  }

  for ($i=$start ; $i<=$end ; $i++) {
  if ($i == $page ) {
echo $vv," $i ",'&nbsp;';
  } else  {
$linkmode=$link_page.$i;
echo "<font class=\"pagination\">","<a href=\"".$linkmode."\">"," $i ",'</a>','</font>';
  }
  }

  if ($page < $totalpage) {
  $next = $page  +1;
  if ($end < $totalpage) {
echo " ... ";
}

$linkend=$link_page.$totalpage;
  echo "<font class=\"pagination\">","<a href=\"".$linkend."\">","หน้าท้ายสุด ! >",'</a>','</font>';
  }
//จบโค้ดแบ่งหน้า
?>
</div>


ลองดูครับผมใช้อยู่ ได้มาจากไหนก็ไม่รู้ เผื่อตรงความต้องการ แต่ผมไม่ได้อธิบายไว้น่ะครับพอดีรีบๆ ลองแกะดูครับไม่ยาก  Tongue

โอ้วสุดยอดครับ เดี๋ยว +1 ให้ครับ ^^
บันทึกการเข้า
normalblue
คนรักเสียว
*

พลังน้ำใจ: 31
ออฟไลน์ ออฟไลน์

กระทู้: 145



ดูรายละเอียด
« ตอบ #12 เมื่อ: 26 กุมภาพันธ์ 2013, 22:28:55 »

ผมขอเสริมนิดนึงครับ ปี 2013 แล้วเราควรมาใช้ Prepare Statement ได้แล้วครับ ไม่ว่าจะเป็น PDO หรือ my_sqli

และหากเป็นเว็บที่มีจำนวน Record เยอะ เราควรจะใช้ Database ให้มีประสิทธิภาพ จะได้ประหยัดพื้นที่ RAM ในการ Fetch ข้อมูล
เช่น ในการนับจำนวน Row ให้ไปใช้ Aggregate Function แทน

//กำหนดจุดหมายในการเชื่อมต่อ
$dsn = "mysql:host=your_db_host;dbname=your_db_name;charset=UTF-8";
$dbu = "db_user";
$dbp = "db_pass";

//Instantiate object จาก Class PDO
$dbh = new PDO($dsn, $dbu, $dbp);
$sql = "SELECT COUNT(*) FROM ?";

//เตรียมดึงข้อมูลจากฐานข้อมูลมาไว้ใน Memory
$stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->bindParam(1, your_table_name);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_NUM); //เกิดมีหลาย Row while($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)){ do something....};

//ให้ค่าตัวแปรจากข้อมูลที่ดึงมา
$records = $result[0]; //จำนวน Record ทั้งหมดใน your_table_name

อาจจะยาวไปนิดแต่หากทำแบบนี้จะช่วยป้องกัน SQL Injection ได้ และประสิทธิภาพโดยรวมของระบบจะดีขึ้นครับ
บันทึกการเข้า
Serge
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 202
ออฟไลน์ ออฟไลน์

กระทู้: 2,009



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 26 กุมภาพันธ์ 2013, 22:37:06 »

อ้างถึง
ปล. ตอนเรียนผมโดนสอนจากอาจารย์ว่า ถามไปเถอะแม้ว่าคำตอบนั้นจะมาจากเด็กตัวเล็กก็ตามก็อย่าไปอายเค้า ถ้าเค้าให้ความรู้และวิชาแก่เรา

ผมชอบมากเลยวลีนี้  wanwan020
บันทึกการเข้า

Herbraga ผลิตภัณฑ์เสริมอาหาร เหมาะสำหรับผู้ที่รักสุขภาพ
jenovazac
คนรักเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 134



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 27 กุมภาพันธ์ 2013, 00:52:28 »

แหล่มๆครับ อิอิ
« แก้ไขครั้งสุดท้าย: 27 กุมภาพันธ์ 2013, 00:56:54 โดย jenovazac » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์