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; $last=$row['menu_id']; } 打印“
  • \n”; } 如果($last!=-1){ 打印“
\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>