显示两个表格中的数据(菜单和子菜单)

时间:2014-01-18 20:35:35

标签: php html mysql sql menu

以下是我正在做的事情我有两个表,一个是菜单,另一个是subMenu

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] ";
        }
    }
?>

并且结果如此

enter image description here

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

3 个答案:

答案 0 :(得分:1)

SQLFIDDLE

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

enter image description here

SQLFIDDLE

答案 1 :(得分:0)

首先,您可能想要更改:

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发送一份附注:

答案 2 :(得分:0)

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

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