เงื่อนไขแบบนี้เรียกคำสั่ง Mysql PHP อย่างไรครับให้ได้ผลคล้ายๆในภาพนี้ครับ
select * from tb_menu group by parent_id แล้วเอามา ถึก code เอาครับ
Date :
2014-12-09 11:52:53
By :
Manussawin
ตัวอย่างนะครับ
ดึงเมนูที่เกี่ยวข้อง ทั้งหัวข้อหลักและรอง
SELECT * FROM `your_menu_table`
WHERE
`id` = '213'
OR `parent_id` = '213'
ORDER BY `id` <> '213', `id`
ซึ่งแถวแรกที่ได้จะเป็นหัวข้อใหญ่ครับ แถวที่เหลือจะเป็นหัวข้อรอง
Date :
2014-12-09 12:13:48
By :
phpinfo()
ได้แระครับ แต่ลองไปทำกับเทเบิ้ลง่ายๆก่อนเหอๆ สอบถามหน่อยครับว่า ถ้ากรณีแบบรูปต่อไปนี้ ต้องจอยเทเบิ้ลกัน โดยที่ผมเขียน
คำสั่งแบบนี้ครับ แต่มันโชว์ออกมาเทเบิ้ลเดียวเองครับ แต่ได้รูปแบบตามต้องการแล้ว ที่นี้แถวย่อยที่สามมันอยู่อีกเทเบิ้ลนึง
ผมจะแทรกคำสั่งไงได้บ้างครับ ลองจอยแล้วซับเมนูย่อยหายไป
Code (PHP)
<?php
foreach ($this->FullSearchListLv1 as $item){
$db = JFactory::getDbo();
$sql = "SELECT `id`, `NAME`, `parent` FROM tb_k2_categories WHERE id >0 AND parent ='$item->id' ";
$db->setQuery($sql);
$rs = $db->loadObjectList();
?>
<div class="row-check2f" >
<?php //$link = 'index.php?option=com_k2&view=item&layout=item&id='.$item->id.'';?>
<li><span><?php echo $item->NAME ?></span></span></li>
<?php
foreach ($rs as $item2){
?>
<div class="row-check2f subcheck2f">
<?php $link = 'index.php?option=com_k2&view=item&layout=item&id='.$item2->id.'';?>
<li style="margin-left:15px;" ><a href="<?php echo $link ?>"><span><?php echo $item2->NAME ?></span></span></a></li>
</div>
<?php
}
?>
</div>
<?php
}
?>
อันนี้คือที่เขียนออกมาครับ ได้ผลดังภาพนี้ครับ แต่ผมอยากเอาเมนูย่อยที่อยู่อีกเทเบิ้ลนึงมาแสดงด้วยอ่ะครับ
มันมีฟิว Cat.id เป็น Forign key เชื่อมครับ
-ผลจากโค๊ดข้างต้นครับ ได้แบบนี้ครับ แต่อยากให้มีเมนูย่อยที่สาม ออกมาอ่ะครับ
-นี่คือเบสของเมนูย่อยที่สามครับ
$sql = "SELECT `id`, `NAME`, `parent` FROM tb_k2_categories WHERE id >0 AND parent ='$item->id' ";
ตรงนี้ผมเขียนคำสั่งจอยไงดีครับ ถ้าผมแทรกแบบนี้เข้าไป ออกมาแค่เมนูหลักครับ
LEFT JOIN tb_k2_categories ON tb_k2_items.catid = tb_k2_categories.id
T_T มันลูปไม่ออกด้วยครับ For Each
ประวัติการแก้ไข 2014-12-09 12:49:46
Date :
2014-12-09 12:40:10
By :
sarut14
Date :
2014-12-09 12:41:27
By :
mr.win
ไป คิวรี่ ข้างใน foreach อีกทีคับ
Date :
2014-12-09 12:55:04
By :
progamer2000
ไม่ต้อง join แล้วคับ
Date :
2014-12-09 14:02:47
By :
progamer2000
มันออกมาแบบนี้ครับ ซ้ำเลย มันไม่อยู่หมวดใครหมวดมันอ่ะครับ เช่นลิ้งสีน้ำเงิน จริงๆมันจะมี catid=id กัน
โค๊ดผม
Code (PHP)
<?php
foreach ($this->FullSearchListLv1 as $item):
$db = JFactory::getDbo();
$sql = "SELECT `id`, `NAME`, `parent` FROM tb_k2_categories
WHERE id >0 AND parent ='$item->id' ";
$db->setQuery($sql);
$rs = $db->loadObjectList();
?>
<div class="row-check2f" >
<?php //$link = 'index.php?option=com_k2&view=item&layout=item&id='.$item->id.'';?>
<li><span><?php echo $item->NAME ?></span></span></li>
</div>
<?php
foreach($rs as $item2) :
?>
<div class="row-check2f subcheck2f">
<li style="margin-left:15px;" ><span><?php echo $item2->NAME ?></span></span></li>
</div>
<?php
$db = JFactory::getDbo();
$sql2 = "SELECT tb_k2_items.id , tb_k2_items.title , tb_k2_items.catid,tb_k2_categories.id
FROM tb_k2_items
WHERE tb_k2_items.id
ORDER BY tb_k2_items.id";
$db->setQuery($sql2);
$rs2 = $db->loadObjectList();
//print_r($rs2);
//exit;
?>
<?php
foreach($rs2 as $item3) :
?>
<div class="row-check2f subcheck2f">
<?php $link = 'index.php?option=com_k2&view=item&layout=item&id='.$item3->id.'';?>
<li style="margin-left:30px;" ><a href="<?php echo $link ?>"><span><?php echo $item3->title ?></span></span></a></li>
</div>
<?php
endforeach;
endforeach;
endforeach;
รูปที่ได้ T_T
ประวัติการแก้ไข 2014-12-09 15:08:31
Date :
2014-12-09 14:59:16
By :
sarut14
ไม่เห็น where cat_id = ??? อะไรเลยฮะ
Date :
2014-12-09 15:40:51
By :
progamer2000
ได้แระครับ
WHERE tb_k2_items.catid ='".$item2->id."'";
Date :
2014-12-09 17:47:43
By :
sarut14
ได้ละนิ เย่ อย่าคิดเยอะ 555
Date :
2014-12-09 18:03:52
By :
progamer2000
จริงๆ หลักมัน คือ คิวรี่ เมนูหลักมาก่อน
แล้วเอา id ที่ได้ ไปคิวรี่ ไอดีลอง อีกที
select * from table where parent=0 or parent=null or parent='' ก็เลือกเอานะครับ เพราะไม่รู้เก็บแบบไหน
Code (PHP)
$rs=mysql_query('select * from table where parent_id=0');
while( $ro=mysql_fetch_assoc($rs)){
//แสดง mainmenu
$rs2=mysql_query('select * from table where parent_id='.$ro['id']);
while( $ro2=mysql_fetch_assoc($rs2)){
// แสดงส่วนของsubmenu
}
}
Date :
2014-12-09 18:33:27
By :
Chaidhanan
Load balance : Server 05