วันเสาร์ที่ 12 พฤศจิกายน พ.ศ. 2554

แสดงสินค้าในตารางโดยแบ่งข้อมูลเป็นคอลัมน์

บทความ PHP For E-commerce ตอนนี้ ผมจะสอนท่านเขียนคำสั่ง PHP ร่วมกับ ฐานข้อมูล MySQL เพื่อดึงข้อมูลสินค้าจากในร้านค้าออนไลน์ของเราออกมาแสดงผลในตาราง โดยที่เราสามารถกำหนดการแสดงผลข้อมูลได้อีกด้วย ว่าเราต้องการจะให้ข้อมูลแสดงผลในตารางกี่คอลัมน์หรือกี่แถวก็ได้ครับ ดูตัวอย่าง code โปรแกรมได้เลยครับ

<?php
$conn=mysql_connect('localhost','root','irender');//เชื่อมต่อกับฐานข้อมูล
mysql_select_db('db_thpartsweb');//เลื่อกฐานข้อมูล
mysql_query("SET NAMES 'utf8'");
$setColumn=3;//แสดง3คอลัมน์ต่อ1แถว ถ้าต้องการให้แสดงกี่คอลัมน์ให้กำหนดตรงนี้
$ColumnStart=1;//คอลัมน์เริ่มต้นเป็น 1 เสมอ
$rsShowProduct=mysql_query('SELECT * FROM tb_test ORDER BY id DESC LIMIT 10');//ดึงข้อมูลล่าสุด10แถวจากเทเบิล
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
 
<body>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<?php while($showProduct=mysql_fetch_array($rsShowProduct)){//วันลูปแสดงผลสินค้าทีละแถว?>
<td>
<?php echo '<img border="1" src="product_images/thumb/'.$showProduct['image'].'" alt="'.$showProduct['name'].'" />'?>
<?php echo '<br />'.$showProduct['name']?>
</td>
<?php
if($ColumnStart==$setColumn){//หากคอลัมน์เท่ากับจำนวนคอลัมน์ที่กำหนดไว้
echo '</tr><tr>';//สร้างแท็ก </tr> ปิด เพื่อจบแถว และสร้าง <tr>เพื่อสร้างแถวใหม่
$ColumnStart=0;//เซตเป็น 0 เพื่อเริ่มนับคอลัมน์ใหม่
}
$ColumnStart++;//เพิ่มคอลัมน์ทีละ1คอลัมน์
} ?>
</tr>
</table>
</body>
</html>

จะเห็นได้ว่า เราสามารถกำหนดจำนวนคอลัมน์สินค้าในเว็บขายของของเรา ต่อ1แถวได้จากตัวแปร $setColumn  ทำให้สามารถแสดงผลข้อมูลต่อ 1 แถว ได้ตั้งแต่ 1 คอลัมน์ขึ้นไปครับ
จากโค๊ดข้างบน จะได้ผลลัพธ์ตามนี้ครับ

พบบทความสอนทำระบบร้านค้าออนไลน์ด้วย PHP + MySQL ได้ใหม่ให้โอกาสหน้าครับ

2 ความคิดเห็น :

  1. ถ้าเป็นแบบนี้จะ แบ่ง page ยังไง เพราะเคยทำแต่ที่เป็น row อ่ะค่ะ

    ตอบลบ
    คำตอบ
    1. แบ่งตามปกติครับ เหมือนแบ่งเป็น row นั่นแหละครับ
      เราต้องรู้ก่อนว่า จะให้แสดงข้อมูลจำนวนเท่าไหร่ในหนึ่งหน้า เช่น ต้องการแสดง 10 และแบ่งเป็น 2 คอลัมน์
      ก็จะได้
      1 2
      3 4
      5 6
      7 8
      9 10
      ข้อมูลที่เหลือจะถูกแบ่งหน้าไปหน้าต่อไป เช่น ถ้าคลิกไปหน้า 2 จะได้
      11 12
      13 14
      15 16
      17 18
      19 20

      ลบ