Friday, 20 May 2016

การทำ List/Menu จากฐานข้อมูล

 

การทำ List/Menu


1.สร้างฐานข้อมูล

CREATE DATABASE `listmenu` ;

2.สร้างตารางเก็บข้อมูล

CREATE TABLE `tb_catalog` ( `cat_id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`cat_name` tinytext NOT NULL ,
PRIMARY KEY ( `cat_id` ) ) ENGINE = MYISAM DEFAULT CHARSET = tis620 AUTO_INCREMENT =7;# MySQL คืนผลลัพธ์ว่างเปล่ากลับมา (null / 0 แถว).
--
-- dump ตาราง `tb_catalog`
--
INSERT INTO `tb_catalog` ( `cat_id` , `cat_name` )
VALUES ( 1, 'RING' ) , ( 2, 'PENDANT&BROOCH' ) , ( 3, 'EARRING' ) , ( 4, 'BRACELET' ) , ( 5, 'BANGLE' ) , ( 6, 'NECKLACE' ) ;# แถวที่มีผล:6
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `tb_subcatalog`
--
CREATE TABLE `tb_subcatalog` ( `sub_id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`cat_id` int( 11 ) NOT NULL default '0',
`sub_name` tinytext NOT NULL ,
`sub_date` tinytext NOT NULL ,
PRIMARY KEY ( `sub_id` ) ) ENGINE = MYISAM DEFAULT CHARSET = tis620 AUTO_INCREMENT =52;# MySQL คืนผลลัพธ์ว่างเปล่ากลับมา (null / 0 แถว).
--
-- dump ตาราง `tb_subcatalog`
--
INSERT INTO `tb_subcatalog` ( `sub_id` , `cat_id` , `sub_name` , `sub_date` )
VALUES ( 1, 1, 'PLAIN RING', '1201599849' ) , ( 2, 1, 'CZ RING', '1201596870' ) , ( 3, 1, 'PAVE RING', '1201597820' ) , ( 4, 2, 'PLAIN PENDANT', '1201596895' ) , ( 5, 2, 'CZ PENDANT', '1201596906' ) , ( 6, 2, 'PAVE PENDANT', '1201596915' ) , ( 7, 3, 'PLAIN EARRING', '1201599709' ) , ( 8, 3, 'CZ EARRING', '1201596936' ) , ( 9, 3, 'PAVE EARRING', '1201596945' ) , ( 10, 4, 'PLAIN BRACELET', '1201596963' ) , ( 11, 4, 'CZ BRACELET', '1201596979' ) , ( 19, 1, 'MARCASITE RING', '1201673452' ) , ( 20, 1, 'SEMIPRECIOUS RING', '1201673469' ) , ( 22, 2, 'MARCASITE PENDANT', '1201673604' ) , ( 21, 1, 'OTHER RING', '1201673483' ) , ( 23, 2, 'SEMIPRECIOUS PENDANT', '1201673622' ) , ( 24, 3, 'MARCASITE EARRING', '1201674153' ) , ( 25, 3, 'SEMIPRECIOUS EARRING', '1201674165' ) , ( 26, 4, 'PAVE BRACELET ', '1201674189' ) , ( 27, 4, 'MARCASITE BRACELET ', '1201674205' ) , ( 28, 4, 'SEMIPRECIOUS BRACELET', '1201674220' ) , ( 29, 5, 'PLAIN BANGLE', '1201674247' ) , ( 30, 5, 'CZ BANGLE', '1201674253' ) , ( 31, 5, 'PAVE BANGLE', '1201674260' ) , ( 32, 5, 'MARCASITE BANGLE', '1201674270' ) , ( 33, 5, 'SEMIPRECIOUS BANGLE', '1201674282' ) , ( 34, 6, 'PLAIN NECKLACE', '1201674302' ) , ( 35, 6, 'CZ NECKLACE', '1201674383' ) , ( 36, 6, 'PAVE NECKLACE', '1201674390' ) , ( 37, 6, 'MARCASITE NECKLACE', '1201674416' ) , ( 38, 6, 'SEMIPRECIOUS NECKLACE', '1201674428' ) , ( 39, 5, 'OTHER BANGLE', '1201674458' ) , ( 40, 6, 'OTHER NECKLACE', '1201674470' ) , ( 41, 3, 'OTHER EARRING', '1201674490' ) , ( 42, 2, 'OTHER PENDANT', '1201674517' ) , ( 43, 4, 'OTHER BRACELET', '1201674535' ) , ( 44, 1, 'SINGLE STONE RING', '1201674567' ) , ( 46, 1, 'mam r', '1202203757' ) , ( 47, 2, 'mam p', '1202203750' ) , ( 48, 3, 'mam e', '1202203742' ) , ( 49, 4, 'mam br', '1202203735' ) , ( 50, 5, 'mam b', '1202203726' ) , ( 51, 6, 'mam n', '1202203712' ) ;#


3.สร้างไฟล์ menu.php โดยนำโค้ดนี้ไว้ใน Body

<form id="form1" name="form1" method="post" action="">
<select name="catalog" id="catalog"onChange="location.href='menu.php?cat_id='+this.value;" style="width:200px">
<option value="">- Choose -</option>
<?
$host="localhost";
$user="root";
$password="";
$dbname="listmenu";
$connection=mysql_connect($host,$user,$password) or die("เชื่อมต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ไม่สามารถเลือกฐานข้อมูลได้");
$sql="select * from tb_catalog order by cat_id ASC";
$dbquery=mysql_db_query($dbname,$sql);
while($result=mysql_fetch_array($dbquery)){
if($cat_id == $result[cat_id]){ //เพื่อให้ แสดง $cat_id ที่ส่งค่ามาให้
?>
<option value="<?=$result[cat_id];?>" selected="selected"><?=$result[cat_name];?></option>
<?
}else{?>
<option value="<?=$result[cat_id];?>"><?=$result[cat_name];?></option>

<?
} }
?>
</select>
<br />
<br />
<select name="subcatalog" id="subcatalog" style="width:200px">
<option value="">- Choose -</option>
<?
if($cat_id != ""){ //กรณีที่ มี่คา caat_id ส่งมาให้ทำงาน
$host="localhost";
$user="root";
$password="";
$dbname="listmenu";
$connection=mysql_connect($host,$user,$password) or die("เชื่อมต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ไม่สามารถเลือกฐานข้อมูลได้");
$sql_sub="select * from tb_subcatalog where cat_id = '$cat_id' ";
$dbquery_sub = mysql_db_query($dbname, $sql_sub);
while($result_sub=mysql_fetch_array($dbquery_sub)){
?>
<option value="<?=$result_sub[sub_id];?>"><?=$result_sub[sub_name];?></option>
<?
}}
?>
</select>
</form>


4.มาดูผลกัน ตอนที่เรายังไม่ได้เลือก Catalog (ด้านบน) กันนะครับ จะเห็นว่า Listmenu subcatalog ด้านล่างไม่มีค่าอะไรเลยนะครับ



ก่อนนะครับ
ทีนี่มาดูตอนที่เราเลือก Catalog ไปที่ Ring ดูนะครับ จะเห็นว่ามีเมนู ออกมาโดยต้อง Refresh หน้านี้ใหม่

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

Post a Comment