kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« เมื่อ: 26 กันยายน 2015, 15:55:24 » |
|
คืออยากจะ select สินค้าอะครับแบบว่า selectมา 10 item พอ item ที่11 ให้มันโชว์ถัดอีกหน้านึงอะครับ เว็บผมเขียนเป็น php ครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
|
smapan
|
 |
« ตอบ #1 เมื่อ: 26 กันยายน 2015, 16:24:01 » |
|
คืออยากจะ select สินค้าอะครับแบบว่า selectมา 10 item พอ item ที่11 ให้มันโชว์ถัดอีกหน้านึงอะครับ เว็บผมเขียนเป็น php ครับ
รอบ ที่ 1 selectมา 10 item รอบ ที่ 2 selectมา 10 item วนไปเรื่อยๆ จน select หมด นับว่า selectมา กี่รอบ แล้วจะไปหน้าที่เท่าไหร่ก็ แสดงผลหน้านั้น ทำได้หลายแบบ เลยครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
Nokky@#
ก๊วนเสียว
พลังน้ำใจ: 20
ออฟไลน์
กระทู้: 216
|
 |
« ตอบ #2 เมื่อ: 26 กันยายน 2015, 16:25:50 » |
|
ใช้ while loop นับเอาครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
killer777
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 52
ออฟไลน์
กระทู้: 1,009
|
 |
« ตอบ #3 เมื่อ: 26 กันยายน 2015, 22:28:39 » |
|
ใช้ limit ใน sql ครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« ตอบ #4 เมื่อ: 28 กันยายน 2015, 09:01:07 » |
|
อย่างงี้เราก็ต้องสร้างหน้าถัดไปเองใช่มั้ยครับ มีวิธีแบบselect it 11 แล้วสร้างหน้าถัดไปให้เองมั้ยครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« ตอบ #5 เมื่อ: 28 กันยายน 2015, 09:24:05 » |
|
ถามอีกอย่าง $sql="SELECT * FROM item LIMIT 5"; แล้วถ้าอยากให้หน้าถัดไปรัน itemที่6 ต่อจาก itemที่5 ต้องทำไงครับ
|
|
|
|
« แก้ไขครั้งสุดท้าย: 28 กันยายน 2015, 09:24:30 โดย kunnarakkup »
|
บันทึกการเข้า
|
|
|
|
|
smapan
|
 |
« ตอบ #6 เมื่อ: 28 กันยายน 2015, 09:26:36 » |
|
ถามอีกอย่าง $sql="SELECT * FROM item LIMIT 5"; แล้วถ้าอยากให้หน้าถัดไปรัน itemที่6 ต่อจาก itemที่5 ต้องทำไงครับ
มีการเรียงลำดับอะไรไว้บางรึเปล่าครับ ถ้ามี เปลี่ยน limit เป็น 10 แล้วเอา itemที่ 1 ถึง itemที่5 ออกครับ
|
|
|
|
« แก้ไขครั้งสุดท้าย: 28 กันยายน 2015, 09:27:04 โดย smapan »
|
บันทึกการเข้า
|
|
|
|
chanarit
Verified Seller
สมุนแก๊งเสียว
พลังน้ำใจ: 68
ออฟไลน์
กระทู้: 649
|
 |
« ตอบ #7 เมื่อ: 28 กันยายน 2015, 09:35:39 » |
|
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
A-LAND
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 120
ออฟไลน์
กระทู้: 2,139
|
 |
« ตอบ #8 เมื่อ: 28 กันยายน 2015, 09:36:42 » |
|
php แบ่งหน้าครับ มีที่เค้าเขียนสำเร็จรูปไว้เยอะแยะ ดแปลงให้เข้ากับ sql ของเราก็ได้แล้ว ไม่น่าจะยาก
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kuzaa516
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 230
ออฟไลน์
กระทู้: 1,063
|
 |
« ตอบ #9 เมื่อ: 28 กันยายน 2015, 09:38:52 » |
|
ลองศึกษาดูครับ http://www.thaicreate.com/php/php-mysql-list-record-paging.html **ซ้ำด้านบน ขอโทษทีครับ
|
|
|
|
« แก้ไขครั้งสุดท้าย: 28 กันยายน 2015, 09:39:41 โดย kuzaa516 »
|
บันทึกการเข้า
|
|
|
|
amazegu
สมุนแก๊งเสียว
พลังน้ำใจ: 80
ออฟไลน์
กระทู้: 875
|
 |
« ตอบ #10 เมื่อ: 28 กันยายน 2015, 09:43:47 » |
|
ลองคิดเองก่อนที่จะใช้ของสำเร็จครับ ถ้าไม่ได้ค่อยหามาใช้ ใช้คำสั่ง SELECT * FROM TB [WHERE] LIMIT START,LIMIT ครับ เช่น แสดงสินค้าทีละ 5 รายการ $page = isset($_GET['page'])?(int)$_GET['page']:1;//สมมติว่าตั้งชื่อตัวแปรของหน้าว่า $page เช็คว่ามีค่าของ page มาหรือเปล่า $limit = 5;//แสดงทีละ 5
$sql = "SELETC * FROM product LIMIT (($page-1)*$limit),$limit";
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« ตอบ #11 เมื่อ: 28 กันยายน 2015, 09:47:51 » |
|
ขอบคุณมากครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
|
smapan
|
 |
« ตอบ #12 เมื่อ: 28 กันยายน 2015, 09:59:10 » |
|
ลองคิดเองก่อนที่จะใช้ของสำเร็จครับ ถ้าไม่ได้ค่อยหามาใช้ ใช้คำสั่ง SELECT * FROM TB [WHERE] LIMIT START,LIMIT ครับ เช่น แสดงสินค้าทีละ 5 รายการ $page = isset($_GET['page'])?(int)$_GET['page']:1;//สมมติว่าตั้งชื่อตัวแปรของหน้าว่า $page เช็คว่ามีค่าของ page มาหรือเปล่า $limit = 5;//แสดงทีละ 5
$sql = "SELETC * FROM product LIMIT (($page-1)*$limit),$limit";
ผมชอบ คอมเม้นนี้ครับ พยายามคิดเองก่อนนะครับ เพราะบางครั้ง พอมองเห็นโค้ดแล้ว มันจะตัน ครับ ไม่สร้างสรรค์ หาทางอื่นไปไม่เป็นครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« ตอบ #13 เมื่อ: 28 กันยายน 2015, 11:25:15 » |
|
ทำได้แล้วครับ ขอบคุณมากครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« ตอบ #14 เมื่อ: 28 กันยายน 2015, 16:39:48 » |
|
ช่วยอีกที่หน่อยครับ จากโค้ดข้างล่างอะครับ เจอปัญหาครับแบบว่าผม select สินค้า1-5 หน้า1 จะมีหัวข้ออธิบายสินค้าครับ พอหน้า2 select สินค้า 6-10 ก็จะหัวข้อมีอธิบายแบบ B ปัญหาคือด้วยที่หน้า2 สร้างแบบออโต้ ทำให้ผมใส่หัวข้ออธิบายไม่ได้ครับ ต้องแก้ยังไงเหรอ ลองถามเพื่อน เพื่อนบอก ผมเขียนแบบ hardcode อยู่ ให้ชใช้ framework ช่วยอะครับ ใครมีวิธีแก้หรือมีตัว framework ก็บอกผมหน่อยครับ <? mysql_connect("localhost","root","123"); mysql_query("USE test"); $page=$_GET["page"]; if($page=="" || $page=="0") { $page1=0; } else { $page1=($page*5)-5; } $sql="SELECT * FROM item WHERE product_group='crayons' and product_type='Regular size' limit $page1,6"; $result=mysql_query($sql); while ($dbarray = mysql_fetch_array($result)) { ?> <li ><a href="pic/thump-product/1.coloring/Crayons/<? echo $dbarray["product_name_tump"];?>" rel="ChillBox" title=""> <img src="pic/mainproduct/1coloring/Crayons/<? echo $dbarray["product_name"];?>"></a> <article class="content-id"> <? echo $dbarray["product_id"]; ?> </article> <article class="content"> <? echo $dbarray["product_content"]."</br>"; echo "Packing : ".$dbarray["Product_packing"]."</br>"; echo "Barcode : ".$dbarray["Product_barcode"]; ?> </article> </li> <? } $sql="SELECT * FROM item WHERE product_group='crayons' and product_type='Regular size' limit $page1,6"; $result=mysql_query($sql); $cou= mysql_num_rows($result); $a = $cou/5; $a = ceil($a);
?> </ul> <h1 class="name_head" ></h1> <ul class="list_number"> <? for($b=1;$b<=$a;$b++) { ?> <li class="number"> <a href="coloring.php?page=<? echo $b;?>" style="text-decoration:none"><?php echo $b." "; ?></a></li> <?php } ?>
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kuzaa516
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 230
ออฟไลน์
กระทู้: 1,063
|
 |
« ตอบ #15 เมื่อ: 29 กันยายน 2015, 10:12:11 » |
|
ช่วยอีกที่หน่อยครับ จากโค้ดข้างล่างอะครับ เจอปัญหาครับแบบว่าผม select สินค้า1-5 หน้า1 จะมีหัวข้ออธิบายสินค้าครับ พอหน้า2 select สินค้า 6-10 ก็จะหัวข้อมีอธิบายแบบ B ปัญหาคือด้วยที่หน้า2 สร้างแบบออโต้ ทำให้ผมใส่หัวข้ออธิบายไม่ได้ครับ ต้องแก้ยังไงเหรอ ลองถามเพื่อน เพื่อนบอก ผมเขียนแบบ hardcode อยู่ ให้ชใช้ framework ช่วยอะครับ ใครมีวิธีแก้หรือมีตัว framework ก็บอกผมหน่อยครับ <? mysql_connect("localhost","root","123"); mysql_query("USE test"); $page=$_GET["page"]; if($page=="" || $page=="0") { $page1=0; } else { $page1=($page*5)-5; } $sql="SELECT * FROM item WHERE product_group='crayons' and product_type='Regular size' limit $page1,6"; $result=mysql_query($sql); while ($dbarray = mysql_fetch_array($result)) { ?> <li ><a href="pic/thump-product/1.coloring/Crayons/<? echo $dbarray["product_name_tump"];?>" rel="ChillBox" title=""> <img src="pic/mainproduct/1coloring/Crayons/<? echo $dbarray["product_name"];?>"></a> <article class="content-id"> <? echo $dbarray["product_id"]; ?> </article> <article class="content"> <? echo $dbarray["product_content"]."</br>"; echo "Packing : ".$dbarray["Product_packing"]."</br>"; echo "Barcode : ".$dbarray["Product_barcode"]; ?> </article> </li> <? } $sql="SELECT * FROM item WHERE product_group='crayons' and product_type='Regular size' limit $page1,6"; $result=mysql_query($sql); $cou= mysql_num_rows($result); $a = $cou/5; $a = ceil($a);
?> </ul> <h1 class="name_head" ></h1> <ul class="list_number"> <? for($b=1;$b<=$a;$b++) { ?> <li class="number"> <a href="coloring.php?page=<? echo $b;?>" style="text-decoration:none"><?php echo $b." "; ?></a></li> <?php } ?> คุณก็ใส่เงื่อนไขไปสิครับ เอาค่า GET มาใช้เป็นเงื่อนไขครับ ง่ายๆเลยก็เช่น if($_GET['page'] == '1'){ echo 'หน้า 1 แสดง...'; } elseif ($_GET['page'] == '2'){ echo 'หน้า 2 แสดง...'; } else { echo 'อื่นๆ'; }
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« ตอบ #16 เมื่อ: 29 กันยายน 2015, 10:45:13 » |
|
ขอบคุณมากครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« ตอบ #17 เมื่อ: 29 กันยายน 2015, 11:09:20 » |
|
ขอถามอีกอย่างครับสุดถ้ายละ เลข หน้า ตอนselect สินค้าอะครับ ผมใส่ให้ select ตามประเภทด้วย สมมุตว่าสินค้า ประเภท A มี 10 ชิ้น select มา หน้าละ6 จะได้เลขหน้า 2 ตัว พอผม select สินค้าประเทภ B มี่18 ชิ้นมัน ต้องโชว์เลขหน้า 3 ตัว แต่มันดันไปจำเลขหน้าของสินค่า A เลยโชว์มาแค่ ตัวเลข 2 ตัวอะครับ มีวิธีแก้มั้ยเอ่ย หรือมีวิธีแบ่งหน้าให้ตามสินค้าแบบ ออโต้มั้ยครับ
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
|
smapan
|
 |
« ตอบ #18 เมื่อ: 29 กันยายน 2015, 12:14:15 » |
|
ขอถามอีกอย่างครับสุดถ้ายละ เลข หน้า ตอนselect สินค้าอะครับ ผมใส่ให้ select ตามประเภทด้วย สมมุตว่าสินค้า ประเภท A มี 10 ชิ้น select มา หน้าละ6 จะได้เลขหน้า 2 ตัว พอผม select สินค้าประเทภ B มี่18 ชิ้นมัน ต้องโชว์เลขหน้า 3 ตัว แต่มันดันไปจำเลขหน้าของสินค่า A เลยโชว์มาแค่ ตัวเลข 2 ตัวอะครับ มีวิธีแก้มั้ยเอ่ย หรือมีวิธีแบ่งหน้าให้ตามสินค้าแบบ ออโต้มั้ยครับ
เอาจำนวนสินค้า A แล้วหาร ด้วยจำนวน ต่อหน้า ผลที่ได้ ปัดเศษขึ้น ก็จะได้ เลขหน้าเริ่มต้นของ B พวกนี้ต้องคิดก่อนเขียนเสมอครับ แล้วก็ถ้ามาถามลักษณะนี้ไม่ได้คิดเอง อาจจะมีปัญหาเรื่องความเข้าใจครับ ถ้าเป็นไปได้ ลองคิดอะไรก็ได้ ที่ง่าย พอที่ตัวเองเข้าใจจะดีที่สุดครับ อย่าเพิ่งไปเน้นเรื่องความสวยงามหรือรวดเร็วของ โค้ด เน้น output ที่ถูกต้องก่อน แล้วค่อย ปรับแต่ง performance , security , coding style 
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
kunnarakkup
สมุนแก๊งเสียว
พลังน้ำใจ: 3
ออฟไลน์
กระทู้: 886
|
 |
« ตอบ #19 เมื่อ: 29 กันยายน 2015, 17:40:51 » |
|
พยายามแล้วครับมึนมากเลย กำลังเพิ่มform selectประเภท สินค้าจากform ด้วยครับ แต่พอไปกดเลขหน้า 2 3 สินค้าอะครับ น่าจะเป็นที่เพราะมันไม่ได้รับค่ามาจาก form selectหรือเปล่า
|
|
|
|
|
บันทึกการเข้า
|
|
|
|
|