2012-11-03 23 views
0

我無法獲得所有要在http://www.mattmaclennan.co.uk/a2上的「新摩托車」部分顯示的子菜單項。例如,Adventure應該有三個選項,而不是一個。這是我用過的代碼。mySQL查詢中只有一個選項不顯示

<? 
$output = mysqli_query("SELECT * FROM bikes, bikeTypes WHERE bikes.model_id = bikeTypes.model_id GROUP BY bikeTypes.model_id"); 
while($row = mysqli_fetch_array($output)) 
{ 
    echo "<li><a href='test.php?id=" . $row['model_id'] . "'>".$row['model'].'</a><ul>'; 
    echo "<li><a href='details.php?id=" . $row['bike_id'] . "'>" . $row['bikeName'] . "</a></li>"; 
    echo '</ul>'; 
    echo '</li>'; 
} 
//var_dump($result); 
?> 

任何想法傢伙?謝謝!

編輯:下面是兩個表從phpMyAdmin的結構:

bikeTypes表: bike types table http://www.mattmaclennan.co.uk/a2/images/bikeTypesTable.jpg

自行車表: bikes table http://www.mattmaclennan.co.uk/a2/images/bikesTable.jpg

回答

2

試試這個:

SELECT bikeTypes.id,bikeTypes.name,bikes.name,bikes.id FROM bikeTypes LEFT JOIN自行車ON bikes.model_id = bikeTypes.model_id

如果你看到我寫的查詢有一個LEFT JOIN在it.What是你做的是當作INNER JOIN由DB引擎。

但是你需要在這裏的東西是

$output = mysqli_query("SELECT * FROM bikeTypes"); 
    while($row = mysqli_fetch_array($output)) 
    { 

     echo "<li><a href='test.php?id=" . $row['model_id'] . "'>".$row['model'].'</a><ul>'; 
     $subcat = mysqli_query("SELECT * FROM bikes WHERE model_id = $row['model_id']"); 

     while($rowSub = mysqli_fetch_array($subcat)){  
     echo "<li><a href='details.php?id=" . $rowSub['bike_id'] . "'>" . $rowSub['bikeName'] . "</a></li>"; 
     } 
     echo '</ul>'; 
     echo '</li>'; 

} 

剛剛看到您想要關閉UL和李。

+0

你有什麼改變?有什麼不同?爲什麼這個工作和他的意志不會?請添加這些點數,而不是僅僅向他投擲代碼。 –

+1

如果你看到我寫的查詢有一個LEFT JOIN。你在做什麼被DB引擎視爲INNER JOIN。 –

+0

非常好,這應該是**答案**的一部分,請在下次答案中包含這些詳細信息。 –