2011-07-27 56 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