Php MySql按菜单\u id分组
表定义:Php MySql按菜单\u id分组,php,mysql,Php,Mysql,表定义: CREATE TABLE IF NOT EXISTS `submenu_cat` ( `id` int(11) NOT NULL AUTO_INCREMENT, `menu_id` int(11) NOT NULL, `href` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `title` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `page_id` int(11)
CREATE TABLE IF NOT EXISTS `submenu_cat` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`menu_id` int(11) NOT NULL,
`href` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`title` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`page_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `menu_id` (`menu_id`),
KEY `page_id` (`page_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=8 ;
表数据:
--
-- Άδειασμα δεδομένων του πίνακα `submenu_cat`
--
INSERT INTO `submenu_cat` (`id`, `menu_id`, `href`, `title`, `page_id`) VALUES
(1, 2, 'educational_events', 'Εκπαιδευτικές Εκδηλώσεις', 1),
(2, 2, 'announcements', 'Ανακοινώσεις', 1),
(3, 2, 'party', 'Party-Χοροί', 1),
(4, 2, 'various', 'Λοιπές δραστηριότητες', 1),
(5, 3, 'dap_hmmy', 'Προτάσεις ΔΑΠ-ΝΔΦΚ ΗΜΜΥ', 1),
(6, 3, 'dap_emp', 'Προτάσεις ΔΑΠ-ΝΔΦΚ ΕΜΠ', 1),
(7, 3, 'dap_aei', 'Προτάσεις ΔΑΠ-ΝΔΦΚ ΑΕΙ', 1);
表约束:
--
-- Περιορισμοί για πίνακα `submenu_cat`
--
ALTER TABLE `submenu_cat`
ADD CONSTRAINT `submenu_cat_ibfk_1`
FOREIGN KEY (`menu_id`)
REFERENCES `menu_cat` (`id`)
ON UPDATE CASCADE,
ADD CONSTRAINT `submenu_cat_ibfk_2`
FOREIGN KEY (`page_id`)
REFERENCES `pages` (`id`)
ON UPDATE CASCADE;
我不会用php写这样的东西来执行这个
<ul id="m2">
<li><a href="">Εκπαιδευτικές εκδηλώσεις</a></li>
<li><a href="">Ανακοινώσεις</a></li>
<li><a href="">Party-Χοροί</a></li>
<li><a href="">Λοιπές δραστηριότητες</a></li>
</ul>
<ul id="m3">
<li><a href="">Προτάσεις ΔΑΠ-ΝΔΦΚ ΗΜΜΥ</a></li>
<li><a href="">Προτάσεις ΔΑΠ-ΝΔΦΚ ΕΜΠ</a></li>
<li><a href="">Προτάσεις ΔΑΠ-ΝΔΦΚ ΑΕΙ</a></li>
</ul>
我可以用一个查询来完成吗
这将通过一个while循环完成?还是两个?您只需通过一个查询选择并按
菜单id进行排序即可
SELECT menu_id, href, title, page_id FROM submenu_cat ORDER BY menu_id
然后使用单个结果循环
迭代输出,如下所示:
//for loop
if($menu_id != $last_menu_id){
// close previous UL (if exists) </ul>...
// show new UL with id <ul id="...
}
echo <li>... // echo your link for the menu here using SQL values
// end for loop
//for循环
如果($menu\U id!=$last\U menu\U id){
//关闭以前的UL(如果存在)。。。
//显示id为的新UL$result=mysql\u查询(“选择菜单id,从子菜单中选择标题,按菜单id排序”);
$last=-1;
而($result&&$row=mysql\u fetch\u assoc($result)){
如果($last!=$row['menu\u id'])){
如果($last!=-1){
打印“\n”;
}
打印“
\n”;
}
您可以通过一个循环完成此操作。如果您按照菜单\u id对结果进行排序
示例代码:
<?php
(($con = mysql_connect('localhost','root','password'))
&&
mysql_select_db('test',$con))
||
die(mysql_errno());
$query = mysql_query('select * from submenu_cat ORDER BY menu_id ASC');
$last_sub_menu = 0;
while($submenu_cat = mysql_fetch_assoc($query)) :
if($isNew = !($last_sub_menu == $submenu_cat['menu_id'])):
if($last_sub_menu != 0)
echo '</ul>';
$last_sub_menu = $submenu_cat['menu_id'];
?>
<ul id="m<?php echo $submenu_cat['menu_id'];?>">
<?php endif;?>
<li><a href="<?php echo $submenu_cat['href']?>"><?php echo $submenu_cat['title']?></a></li>
<?php endwhile; ?>
</ul>
是什么阻止你运行一个查询SELECT*from submenu\u cat ORDER BY menu\u id,id
并在PHP循环中创建页面?太简单了..我必须睡20多个小时..太简单了..我觉得很难..谢谢先生。。
<?php
(($con = mysql_connect('localhost','root','password'))
&&
mysql_select_db('test',$con))
||
die(mysql_errno());
$query = mysql_query('select * from submenu_cat ORDER BY menu_id ASC');
$last_sub_menu = 0;
while($submenu_cat = mysql_fetch_assoc($query)) :
if($isNew = !($last_sub_menu == $submenu_cat['menu_id'])):
if($last_sub_menu != 0)
echo '</ul>';
$last_sub_menu = $submenu_cat['menu_id'];
?>
<ul id="m<?php echo $submenu_cat['menu_id'];?>">
<?php endif;?>
<li><a href="<?php echo $submenu_cat['href']?>"><?php echo $submenu_cat['title']?></a></li>
<?php endwhile; ?>
</ul>
<ul id="m2">
<li><a href="educational_events">Εκπαιδευτικές Εκδηλώσεις</a></li>
<li><a href="announcements">Ανακοινώσεις</a></li>
<li><a href="party">Party-Χοροί</a></li>
<li><a href="various">Λοιπές δραστηριότητες</a></li>
</ul>
<ul id="m3">
<li><a href="dap_hmmy">Προτάσεις ΔΑΠ-ΝΔΦΚ ΗΜΜΥ</a></li>
<li><a href="dap_emp">Προτάσεις ΔΑΠ-ΝΔΦΚ ΕΜΠ</a></li>
<li><a href="dap_aei">Προτάσεις ΔΑΠ-ΝΔΦΚ ΑΕΙ</a></li>
</ul>