【问题标题】:show data from two tables (menu & submenu )显示来自两个表的数据(菜单和子菜单)
【发布时间】:2014-02-08 04:17:57
【问题描述】:

这是我正在做的,我有两张桌子,一张是菜单,另一张是子菜单

Menu table :
- id
- name
- num

submenu table :
- ids
- id
- sname
- url

链接是“id”。

我这样做是为了菜单,但我想显示菜单和她的子菜单

<?

    $getcat = mysql_query("select * from menu ORDER BY num ");    
    $recordno = mysql_num_rows($getcat);

    if ($recordno > 0) {
        while ($rowc = mysql_fetch_array($getcat)) {      
            echo " 
            <br>
            $rowc[name] ";
        }
    }
?>

结果是这样的

请给出代码 php 以显示结果。

【问题讨论】:

    标签: php html mysql sql menu


    【解决方案1】:

    SQLFIDDLE

    select * 
    from
      menu m inner join submenu sm 
        on m.id = sm.id
    order by m.num
    ;
    

    SQLFIDDLE

    【讨论】:

    • 如何显示结果这不起作用 ////// while ($rowc = mysql_fetch_array($getcat)) { ... //////
    【解决方案2】:

    首先你可能想要改变:

    Menu table :
    - id
    - name
    - num
    
    submenu table :
    - id
    - menu_id
    - sname
    - url
    

    这样做有助于避免任何歧义。

    然后使用连接

    <?
    $db = mysql_connect('YOUR_DB_ADDRESS','YOUR_DB_USER','YOUR_DB_PASS') or die("Database error");
    mysql_select_db('YOUR_DB', $db);
    
    
    $getcat = mysql_query("SELECT * FROM menu m JOIN submenu sm ON m.id = sm.menu_id  ORDER BY num ");
    
    if (!$getcat) {
       die("Error");
    }
    
    while ($row = mysql_fetch_assoc($getcat)) {
        echo $row['name'];
        echo $row['sname'];
    }
    

    附注移至 MySQLi

    【讨论】:

    • 抱歉,这不起作用 // 警告:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源 //
    【解决方案3】:

    我认为你需要先加入你的子菜单项

    SELECT * FROM menu INNER JOIN submenu ON submenu.id=menu.id ORDER BY num
    

    【讨论】:

    • 子菜单表设计不佳,您的代码可以容纳它
    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多