2011-07-27 57 views
0

我有一个现有的下拉菜单,我试图转换为PHP/MySQL,以允许客户端编辑菜单项。这是结构:php/mysql动态菜单

首页-的index.php
关于我们 - #
    -about.php
    -annualreport.php
    -awards.php
服务 - #
    -services.php
    -loans.php

等等。我使用的查询是:

select distinct mainlinks.id as daddyid, mainlinks.title as daddytitle, mainlinks.urlink as daddyurl, babylinks.id as babyid, babylinks.title as babytitle, babylinks.urlink as babyurl from mainlinks, babylinks where mainlinks.id = babylinks.parentid order by mainlinks.listorder"; 

而且与下面的代码显示的结果是:

$result = mysql_query($query) or die(mysql_error()); 
// keep track of previous maincategory 
$previous_maincategory = NULL; 

while ($row = mysql_fetch_assoc($result)) 
{ 

     // if maincategory has changed from previouscategory then display it 
     if ($previous_maincategory != $row['daddytitle']) 
     { 
       echo "<strong><h2>" . strtoupper($row['daddytitle']) . "</h2></strong>"; 
     } 

     echo '<a onclick="return confirmSubmit()" class="inside" href="deletesubcategory.php?id='; 
     echo $row['babyid']; 
     echo '">'; 
     echo $row['babytitle']; 
     echo "</a>"; 
     echo "<br/>"; 

     // record what the previous category was 
     $previous_maincategory = $row['daddytitle']; 
} 

只显示有孩子元素的项目,而不是父项不要有子元素。有任何想法吗?我猜问题是查询where子句,但我无法弄清楚如何获取我需要的东西。谢谢。

回答

1

你必须使用LEFT JOIN让那些没有孩子的物品,尽量

select distinct mainlinks.id as daddyid, mainlinks.title as daddytitle, mainlinks.urlink as daddyurl, babylinks.id as babyid, babylinks.title as babytitle, babylinks.urlink as babyurl 
from mainlinks 
    LEFT JOIN babylinks ON mainlinks.id = babylinks.parentid 
order by mainlinks.listorder; 
1

您的查询只抓住这意味着它会忽略的项目存在这种关系是不存在的项目where mainlinks.id = babylinks.parentid

试试这个:

SELECT DISTINCT mainlinks.id as daddyid, mainlinks.title as daddytitle, mainlinks.urlink as daddyurl, babylinks.id as babyid, babylinks.title as babytitle, babylinks.urlink as babyurl FROM mainlinks LEFT JOIN babylinks ON mainlinks.id = babylinks.parentid ORDER BY mainlinks.listorder 

使用LEFT JOIN将告诉您的查询拉所有mainlinks不管他们是否有一个宝贝链接,但只有扳指具有父婴儿的链接。

+0

完美工作。多谢你们。 – John