วิธีการแบ่งเพจ

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: วิธีการแบ่งเพจ

Re: วิธีการแบ่งเพจ

โดย Nong.Nuch » 25/09/2008 6:33 pm

ขอบคุณค่ะ ทำได้แล้วค่ะ

Re: วิธีการแบ่งเพจ

โดย oxygenyoyo » 25/09/2008 2:17 am

ถ้าคลิกหน้าสองแล้วยังแสดงข้อมูลของหน้า 1 แปลว่าตัวแปรที่ส่งค่าไปหน้าสองนั้นไม่ทำงาน

ลองเช็คดูตรงที่จะกดส่งค่าไปอ่ะครับว่ามันส่งตัวแปร start ไปหรือยัง แล้วคุณทำการรับค่าที่ส่งจาก
หน้าที่แล้วหรือยัง แล้วทำทั้งสองอย่างแล้วแปลว่า อาจจะใ้ช้ตัวแปรซ้ำซ้อนหรือไ่ม่ก็ตอนคิวรี่นั้น

ตรง limit ไม่ได้ใช้ตัวแปร start ครับ

Re: วิธีการแบ่งเพจ

โดย Nong.Nuch » 24/09/2008 5:44 pm

ตอนนี้ได้ลองเอาไปประยุกต์ใช้กับ Database จริงแล้วค่ะ
แต่ว่าพอค้นหาข้อมูลมาได้ มันก็แย่งหน้าให้ตามปกติค่ะ
ข้อมูลก็แสดงออกมาตามจำนวนที่แบ่ง แต่มีปัญหาอยู่ว่า
พอคลิกหน้า 2 ทำไมไม่มีข้อมูลมาแสดงเลยค่ะ ช่วยดูให้หน่อยค่ะ
ผลลัพธ์ที่แสดงออกมาตามไฟล์ที่แนบมาค่ะ

Re: วิธีการแบ่งเพจ

โดย Nong.Nuch » 24/09/2008 4:02 pm

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

Re: วิธีการแบ่งเพจ

โดย oxygenyoyo » 24/09/2008 12:38 am

ใส่ $start = $_GET[start];

ใส่บนบรรทัด
if(isset($start))

ดูครับ

Re: วิธีการแบ่งเพจ

โดย Nong.Nuch » 23/09/2008 8:46 pm

ลองทำแล้วค่ะ ได้ได้ผลลัพธ์เหมือนเดิมเลยค่ะ
คือแบ่งข้อมูลให้ แบ่งหน้าให้ แต่เวลาคลิกหน้า 2
แล้วข้อมูลไม่ยอมเปลี่ยนค่ะ ก็ยังคงแสดงข้อมูลของหน้าแรกอยู่ค่ะ

Code ที่เขียนก็ตามนี้ค่ะ

<?php
/*Connect ฐานข้อมูล */
mysql_connect('localhost','root',''); // connect mysql
mysql_select_db('nuch'); // select database

/* check ว่ามี ค่าตัวแปร $start หรือไม่ ถ้าไม่มีให้ตั้งเป็น 0
ปล. อันนี้ต้องใช้กับตัวแบ่งนะ ห้ามเอาออก*/
if(!isset($start)){
$start = 0;
}
$limit = '10'; // แสดงผลหน้าละกี่หัวข้อ

/* หาจำนวน record ทั้งหมด
ปล. อันนี้ต้องใช้กับตัวแบ่งนะ ห้ามเอาออก*/
$Qtotal = mysql_query("select * from type_of_document"); //คิวรี่ คำสั่ง
$total = mysql_num_rows($Qtotal); // หาจำนวน record

/* คิวรี่ข้อมูลออกมาเพื่อแสดงผล */
$Query = mysql_query("SELECT * FROM type_of_document ORDER BY type_of_document ASC LIMIT $start,$limit"); //คิวรี่คำสั่ง
$totalp = mysql_num_rows($Query); // หาจำนวน record ที่เรียกออกมา

/* อันนี้ ไม่เกี่ยวเอาออกได้
printf("มีหัวข้อทั้งหมด %d หัวข้อ / ",$total);
printf("แสดงหน้าละ %d หัวข้อ<br />",$totalp);
echo "<hr />"; */

/* วนลูปข้อมูล */
while($arr = mysql_fetch_array($Query)){
echo sprintf("<B>%03d</B>",$arr[type_of_document])." - $arr[description]<br />"; // แสดงผล
}
echo "<hr>";

/* ตัวแบ่งหน้า */
$page = ceil($total/$limit); // เอา record ทั้งหมด หารด้วย จำนวนที่จะแสดงของแต่ละหน้า

/* เอาผลหาร มาวน เป็นตัวเลข เรียงกัน เช่น สมมุติว่าหารได้ 3 เอpมาวลก็จะได้ 1 2 3 */
for($i=1;$i<=$page;$i++){
if($_GET['$page']==$i){ //ถ้าตัวแปล page ตรง กับ เลขที่วนได้
echo "[<a href='?start=".$limit*($i-1)."&page=$i'><B>$i</B></A>]"; //ลิ้งค์ แบ่งหน้า เงื่อนไขที่ 1
}else{
echo "[<a href='?start=".$limit*($i-1)."&page=$i'>$i</A>]"; //ลิ้งค์ แบ่งหน้า เงื่อนไขที่ 2

}
}
?>

รบกวนช่วยดูหน่อยนะค่ะ ว่าผิดตรงไหนค่ะ
ตอนนี้ติดอย่างเดียวเลยค่ะ คือตอนเลือกหน้า 2
แล้วไม่เปลี่ยนข้อมูลให้ค่ะ

Re: วิธีการแบ่งเพจ

โดย Nong.Nuch » 23/09/2008 3:43 pm

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

Re: วิธีการแบ่งเพจ

โดย oxygenyoyo » 22/09/2008 9:29 pm

คืออันที่ผมให้ไปอ่ะครับน่าจะลอง test กับข้อมูลง่ายๆเพื่อศึกษาดูอ่ะครับผมว่าน่าจะทำได้นะครับ

อย่าเพิ่งเอาไปลองจริงๆอ่ะ สร้างมาซักหน้าแล้วเอาข้อมูลสมมติแล้วลอง test ดูครับ

แล้วค่อยแปล + สังเกตุว่าตัวแปรแต่ละอันมันเชื่อมต่อกันยังไงอ่ะครับ

โค้ดอ่ะผมดูไม่ไหวอ่ะครับคงต้องรอท่านอื่นมาดูให้อ่ะครับ - -'

ลอง test แบบง่ายๆดูแล้วค่อยประยุกต์ครับ ลองดูๆ :)

Re: วิธีการแบ่งเพจ

โดย Nong.Nuch » 20/09/2008 8:29 pm

ไม่เห็นตอบเลยค่ะ รออยู่นะค่ะ
อย่างไงก็รบกวนเวลาช่วยดู Code
ให้หน่อยนะค่ะ อยากจะทำได้จริง ๆ ค่ะ

ข้างบน