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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingถามวิธี select สินค้าจาก database แบบนี้หน่อยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ถามวิธี select สินค้าจาก database แบบนี้หน่อยครับ  (อ่าน 1144 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
kunnarakkup
สมุนแก๊งเสียว
*

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

กระทู้: 886



ดูรายละเอียด
« เมื่อ: 26 กันยายน 2015, 15:55:24 »

คืออยากจะ select สินค้าอะครับแบบว่า selectมา 10 item พอ item ที่11 ให้มันโชว์ถัดอีกหน้านึงอะครับ เว็บผมเขียนเป็น php ครับ
บันทึกการเข้า
smapan
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

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

กระทู้: 8,269



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 26 กันยายน 2015, 16:24:01 »

คืออยากจะ select สินค้าอะครับแบบว่า selectมา 10 item พอ item ที่11 ให้มันโชว์ถัดอีกหน้านึงอะครับ เว็บผมเขียนเป็น php ครับ

รอบ ที่ 1 selectมา 10 item
รอบ ที่ 2 selectมา 10 item
วนไปเรื่อยๆ จน select หมด
นับว่า selectมา กี่รอบ
แล้วจะไปหน้าที่เท่าไหร่ก็ แสดงผลหน้านั้น


ทำได้หลายแบบ เลยครับ
บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
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
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

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

กระทู้: 8,269



ดูรายละเอียด เว็บไซต์
« ตอบ #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 » บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
chanarit
Verified Seller
สมุนแก๊งเสียว
*

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

กระทู้: 649



ดูรายละเอียด
« ตอบ #7 เมื่อ: 28 กันยายน 2015, 09:35:39 »


php pagination ใช่มั้ยครับ ลองศึกษาโค๊ดอย่างง่ายดูนะครับ

http://www.thaicreate.com/php/...-mysql-list-record-paging.html
บันทึกการเข้า

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
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

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

กระทู้: 8,269



ดูรายละเอียด เว็บไซต์
« ตอบ #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";

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

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
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
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

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

กระทู้: 8,269



ดูรายละเอียด เว็บไซต์
« ตอบ #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 
 wanwan017
บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
kunnarakkup
สมุนแก๊งเสียว
*

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

กระทู้: 886



ดูรายละเอียด
« ตอบ #19 เมื่อ: 29 กันยายน 2015, 17:40:51 »

พยายามแล้วครับมึนมากเลย กำลังเพิ่มform selectประเภท สินค้าจากform ด้วยครับ แต่พอไปกดเลขหน้า 2 3 สินค้าอะครับ น่าจะเป็นที่เพราะมันไม่ได้รับค่ามาจาก form selectหรือเปล่า
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์