Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > อยากทราบว่าควรสร้างฐานข้อมูลยังไงถ้ามี category ย่อยประมาณ 3 ชั้น



 

อยากทราบว่าควรสร้างฐานข้อมูลยังไงถ้ามี category ย่อยประมาณ 3 ชั้น

 



Topic : 065728



โพสกระทู้ ( 18 )
บทความ ( 0 )



สถานะออฟไลน์




อยากทราบว่าควรสร้างฐานข้อมูลยังไงถ้ามี category ย่อยประมาณ 3 ชั้น
อย่างเช่น ร้านขายสินค้าหลายประเภท
1.กระดาษ เครื่องเขียน อุปกรณ์สำนักงาน
1.1กระดาษ
1.1.1. กระดาษถ่ายเอกสาร
1.1.2. กระดาษทำปก
1.1.3. กระดาษโฟโต้

1.2. อุปกรเครื่องเขียน
1.2.1. ปากกาหมึกซึม
1.2.2. ปากกาหมึกเจล

2.ศิลปะและการตกแต่ง
2.1. สี


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

จากที่ผมคิดได้คือได้แค่ชั้นเดียว

ตารางสินค้า ( product)
- รหัสสินค้า (pid : int(8))
- ยี่ห้อสินค้า (pname : text)
- รูปสินค้า (pimage : varchar(200))
- ประเภทสินค้า (catid : int(5))
- สถานนะการแสดงผล (catactive :tinyint(1))
- รายละเอียด (detail : text)
(แต่ละชนิดจะไม่เหมือนกันเลยคิดว่านำมารวมกัน (รุ่น,ขนาด,สี))
- ราคา (pprice : double)
(แต่ละสินค้าจะขายไม่เหมือนกันจะมีแบบเป็นชินและเป็นกล่อง,แต่ละกล่อง ก็ไม่เท่ากัน)
- สถานนะการแสดงผล (pactive : tinyint(1))
- จำนวนสินค้า (stock_now : int(5))


ประเภทสินค้า (category)
- รหัสสินค้า (catid : int(5))
- ชื่อประเภท (catname : varchar(200))
- สถานนะการแสดงผล (catactive : tinyint(1))



Tag : PHP, MySQL, CakePHP









ประวัติการแก้ไข
2011-09-01 09:32:22
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-09-01 09:29:05 By : Pday View : 19430 Reply : 11
 

 

No. 1



โพสกระทู้ ( 875 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ถ้าหากมั่นใจว่ามี 3 level ก็เลียนแบบ ฐานข้อมูล ตำบล อำเภอ จังหวัด ได้เลยครับ ในเว็บนี้มี


แต่ถ้าหากไม่แน่ใจว่าจะมีการเพิ่มโหนดย่อย หลายๆ ชั้นเข้าไปอีก แนะนำว่าน่าจะทำแบบนี้ครับ

ประเภทสินค้า (category)
- รหัสสินค้า (catid : int(5))
- ชื่อประเภท (catname : varchar(200))
- สถานนะการแสดงผล (catactive : tinyint(1))
- parentID ( มันคือ catid นั่นแหละ ดึงมาเป็นโหนด parent จะทำให้มี หมวดสินค้าย่อยๆ ได้หลายระดับชั้น)

ตัวอย่าง http://jquery.bassistance.de/treeview/demo/








ประวัติการแก้ไข
2011-09-01 09:59:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-01 09:58:45 By : peterxp
 


 

No. 2



โพสกระทู้ ( 18 )
บทความ ( 0 )



สถานะออฟไลน์


คือผมใช้ Dreamweaver cs3 และน่าจะติดตรง manager site แต่ไม่รู้ตรงไหน คือเมื่อผมทำงานแล้วมันมีโฟรโด้ ไฟล์ซ้ำเพิ่มขึ้นมาอย่างเช่น

ผมสร้างโฟรโด้เว็ปชื่อ nui ภายในก็มีไฟล์งาน แต่ผมทำไป ในโฟรโด้ nui ก็มีโฟร์โด้ nui เพิ่มขึ้นมาเอง และมีโฟร์โด้อื่นที่ผมได้เปิดไปดูก็เพิ่มขึ้นมา

ผมต้องไปแก้ตรงไหนครับแล้วจะลบได้ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-01 10:02:31 By : Pday
 

 

No. 3



โพสกระทู้ ( 875 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

http://codeassembly.com/How-to-display-inifinit-depth-expandable-categories-using-php-and-javascript/

ถ้ามือใหม่ แนะนำ hand code ก็ดีนะครับ พอคล่องตัวหน่อยค่อยไปใช้ tool(กลัวจะติดความสบายจาก tools และแก้ code เองแบบ hand code ไม่ได้ ในอนาคต จะเป็นอุปสรรคอย่างยิ่งในการพัฒนาตัวเอง)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-01 10:17:50 By : peterxp
 


 

No. 4



โพสกระทู้ ( 18 )
บทความ ( 0 )



สถานะออฟไลน์


อ๋อ..........ขอบคุณครับ พอนึกภาพออกแล้วครับแต่ไม่ชัว ต้องลอง คิดว่าตอนจะเรียกใช้งานต้องมีคำสั่งแน่เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-01 10:32:52 By : Pday
 


 

No. 5



โพสกระทู้ ( 18 )
บทความ ( 0 )



สถานะออฟไลน์


1.กระดาษ เครื่องเขียน อุปกรณ์สำนักงาน
1.1กระดาษ
1.1.1. กระดาษถ่ายเอกสาร
1.1.2. กระดาษทำปก
1.1.3. กระดาษโฟโต้

1.2. อุปกรเครื่องเขียน
1.2.1. ปากกาหมึกซึม
1.2.2. ปากกาหมึกเจล

2.ศิลปะและการตกแต่ง
2.1. สี

จากด้านบนผมจะต้องแยก
http://codeassembly.com/How-to-display-inifinit-depth-expandable-categories-using-php-and-javascript/

INSERT INTO `categories` (`id`, `name`, `parent`) VALUES

(1, 'กระดาษ เครื่องเขียน อุปกรณ์สำนักงาน', 0),

(2, 'ศิลปะและการตกแต่ง', 0),

(3, 'กระดาษ', 1),

(4, 'อุปกรเครื่องเขียน', 1),

(5, 'สี', 2),

(6, 'กระดาษถ่ายเอกสาร', 3),

(7, 'กระดาษทำปก', 3),

(8, 'กระดาษโฟโต้', 3),

(9, 'ปากกาหมึกซึม', 4);

(10, 'ปากกาหมึกเจล', 4);

ไม่ทราบว่าผมคิดถูกกไหมครับ


ประวัติการแก้ไข
2011-09-01 11:42:50
2011-09-01 11:43:34
2011-09-01 11:50:17
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-01 11:42:22 By : Pday
 


 

No. 6



โพสกระทู้ ( 18 )
บทความ ( 0 )



สถานะออฟไลน์


จากแบบข้างบน เมื่อต้องการแสดง ก็เก็บเป็นแบบ array ได้เปล่าครับ


paperofffice คือ กระดาษ เครื่องเขียน อุปกรณ์สำนักงาน

จะให้แสดงหัวข้อใหญ่

$lcategories=array($row["name and parent = 0"]);

จะให้แสดงหัวข้อย่อย
$mcategories=array($row["name and parent = 1"]);

จะให้แสดงหัวข้อย้อยลงไปอีก
$scategories=array($row["name and parent = 3"]);


ถ้าทำอย่างนี้จะได้ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-01 14:27:44 By : Pday
 


 

No. 7

Guest


สร้าง field parent_id เพิ่มเพื่อเก็บ id ข้อมูลหลัก ที่ข้อมูลย่อยๆ จะได้เข้าถึงได้ วิธีนี้เข้าถึงเร็ว ไม่เปลือง mem ค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-01 15:35:15 By : Natch
 


 

No. 8



โพสกระทู้ ( 18 )
บทความ ( 0 )



สถานะออฟไลน์


ตารางสินค้า ( product)
- รหัสสินค้า (pid : int(8))
- ยี่ห้อสินค้า (pname : text)
- รูปสินค้า (pimage : varchar(200))
- ประเภทสินค้า (catid : int(5))
- สถานนะการแสดงผล (catactive :tinyint(1))
- รายละเอียด (detail : text)
(แต่ละชนิดจะไม่เหมือนกันเลยคิดว่านำมารวมกัน (รุ่น,ขนาด,สี))
- ราคา (pprice : double)
(แต่ละสินค้าจะขายไม่เหมือนกันจะมีแบบเป็นชินและเป็นกล่อง,แต่ละกล่อง ก็ไม่เท่ากัน)
- สถานนะการแสดงผล (pactive : tinyint(1))
- จำนวนสินค้า (stock_now : int(5))


ประเภทสินค้า (category)
- รหัสสินค้า (catid : int(5))
- ชื่อประเภท (catname : varchar(200))
- สถานนะการแสดงผล (catactive : tinyint(1))
- ประเภทแยกย่อย (parentID : int (5))

แยกประเภทสินค้า (parent)
- รหัสข้อมูลหลัก (parentID : int(5))
- ข้อมูลชั้นบนสุด (parentl : varchar(100))
- ข้อมูลชั้นลองลงมา (parentm : varchar(100))


ประวัติการแก้ไข
2011-09-01 23:52:31
2011-09-01 23:53:44
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-01 23:43:48 By : Pday
 


 

No. 9

Guest


ตอบความคิดเห็นที่ : 8 เขียนโดย : Pday เมื่อวันที่ 2011-09-01 23:43:48
รายละเอียดของการตอบ ::
ตารางสินค้า ( product)
- รหัสสินค้า (pid : int(8))
- ยี่ห้อสินค้า (pname : text)
- รูปสินค้า (pimage : varchar(200))
- ประเภทสินค้า (catid : int(5))
- สถานนะการแสดงผล (catactive :tinyint(1))
- รายละเอียด (detail : text)
(แต่ละชนิดจะไม่เหมือนกันเลยคิดว่านำมารวมกัน (รุ่น,ขนาด,สี))
- ราคา (pprice : double)
(แต่ละสินค้าจะขายไม่เหมือนกันจะมีแบบเป็นชินและเป็นกล่อง,แต่ละกล่อง ก็ไม่เท่ากัน)
- สถานนะการแสดงผล (pactive : tinyint(1))
- จำนวนสินค้า (stock_now : int(5))

ประเภทสินค้า (category)
- รหัสสินค้า (catid : int(5))
- ชื่อประเภท (catname : varchar(200))
- สถานนะการแสดงผล (catactive : tinyint(1))
- ประเภทแยกย่อย (parentID : int (5))

[font=Verdana]ไม่ต้องมีตาราง แยกประเภทสินค้า [/font]


[glow=red]เนื่องจาก เราใช้[font=Verdana] parentID [/font] ที่ลิงค์กับ PK id ของ Table ตัวเองได้ คือ [font=Verdana]catid [/font] เพื่อบอกให้รู้ว่าข้อมูลที่ดูอยู่ เป็นประเภทย่อยของประเภทหลักตัวไหนได้[/glow]
[glow=red]เช่น ถ้า สินค้า catid 1 มี parentID 5 ก็หมายความว่า catid 5 เป็นสินค้าหลักของ catid 1 ถ้า catid 5 มี parentID=0 ก็แปลว่า catid 5 เป็นสินค้าหลัก ซึ่งก็หมายความว่า catid 5 เป็นสินค้าหลักไปแล้ว และต่อมา catid 1 ก็คือลูกหรือ สินค้าย่อย(ที่อยู่ชั้นบนสุดเสมอตามที่คุณนุพยายามจะทำ)

อีกกรณีหนึ่ง เรื่องของสินค้าชั้นรองลงมาล่ะ? ก็ทำเหมือนกันแหละค่ะ คือไล่จาก parentID ต่อไปอีก เช่น
catid 2 มี parentID 10 (ซึ่งตาม logic เดิม) ผูกกับ ของ catid 10 แล้ว catid 10 ก็มี parentID อีก คือ catID 3 ที่มี parentID= 0 แปลว่า [font=Verdana]เจ้า catid 3 คือสินค้าหลัก จบ ตามตัวอย่างก็จะได้ว่า [/glow]
catid 2 เป็นสินค้าที่อยู่บนชั้นรองลงมา (ลูกของลูก ของ สินค้าประเภทกระดาษ)
catid 10 เป็นสินค้าที่อยู่ชั้นบนสุด(ลูก ของสินค้าประเภทกระดาษ)
catid 3 เป็นสินค้าหลัก (กระดาษ) [/font]

ละเอียดเชียว ลองทำดูละกันนะคะ ^^!

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-07 23:11:34 By : Natch
 


 

No. 10



โพสกระทู้ ( 18 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-08 08:34:48 By : Pday
 


 

No. 11



โพสกระทู้ ( 18 )
บทความ ( 0 )



สถานะออฟไลน์


<!--MENU Categories-->
<link href="css/p7TMM05.css" rel="stylesheet" type="text/css" media="all" />
<script type="text/javascript" src="js/p7TMMscripts.js"></script>
<div style="width:210px;">
<div id="p7TMM_1" class="p7TMM05">
<ul class="p7TMM">
<!--category1-->

<li><a href="javascript:;">กระดาษ เครื่องเขียนและอุปกรณ์สำนักงาน</a>
<div><ul>

<li><a href="javascript:;">กระดาษและผลิตภัณฑ์กระดาษ</a>
<div><ul>


<?php
$sql_cat = "select * from category where catactive=1 and catparent=28 order by catname";
$result_cat = mysql_query($sql_cat);
$num_cat = mysql_num_rows($result_cat);

for ($i=1;$i<=$num_cat;$i++){
$row_cat = mysql_fetch_array($result_cat);
?>
<li><a href="../Municgroup/category.php?catid=<?php echo $row_cat["catid"] ?>"><?php echo $row_cat["catname"] ?></a></li>
<?php }?>
<!--End subcategory1-->
</ul></div>
</li>

<!-- subcategory12-->
<li><a href="javascript:;">อุปกรณ์งานเขียน</a>
<div><ul>
<?php
$sql_cat = "select * from category where catactive=1 and catparent=29 order by catname";
$result_cat = mysql_query($sql_cat);
$num_cat = mysql_num_rows($result_cat);

for ($i=1;$i<=$num_cat;$i++){
$row_cat = mysql_fetch_array($result_cat);
?>
<li><a href="../Municgroup/category.php?catid=<?php echo $row_cat["catid"] ?>"><?php echo $row_cat["catname"] ?></a></li>
<?php }?>

<!--End subcategory2-->
</ul></ul>


<!--category2-->

<li><a href="javascript:;">ศิลปะและการตกแต่ง</a>
<div>
<ul>
<li><a href="javascript:;">สุขภัณฑ์</a>
<div><ul>
<li><a href="product.php?cat=24">ชักโครก</a></li>

<li><a href="product.php?cat=25">อ่างล้างหน้า</a></li>

<li><a href="product.php?cat=26">อ่างอาบน้ำ</a></li>

<li><a href="product.php?cat=27">ตู้อาบน้ำ/ฉากกั้น</a></li>

<li><a href="product.php?cat=28">เฟอร์นิเจอร์ห้องน้ำ</a></li>
</ul></div>
</li>
<!--End category2-->
</ul></div>
</li>
</ul>

<!--[if lte IE 6]>
<style>.p7TMM05 .p7TMM, .p7TMM05 a, .p7TMM05 li {height:1%;}</style>
<![endif]-->
<!--[if IE 5]>
<style>.p7TMM05 a, .p7TMM05 a {overflow: visible !important;}</style>
<![endif]-->

<script type="text/javascript">
<!--
P7_TMMop('p7TMM_1',1,0,0,3,1,1,1,0,-1,150);
//-->
</script>

</div>
</div>



<!--End Menu Categories-->


</ul>
</div>
</div>
<!-- End Categories -->

ผมจะต้องทำยังไงครับให้มันวนลูป ซ้ำกัน2-3 ชั้น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-12 17:00:03 By : Pday
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากทราบว่าควรสร้างฐานข้อมูลยังไงถ้ามี category ย่อยประมาณ 3 ชั้น
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่