2012-07-22 37 views
0

我有一個示例數據庫:錯誤組由php在mysql中的id?

brand(id, name) 
    (1, 'Apple') 
    (2, 'Dell') 
model(id, name, brand_id) 
    (1, 'Macbook', 1) 
    (2, 'Iphone', 1) 
    (3, 'Vostro', 2) 

和PHP MySQL代碼:

<?php 
// Make a MySQL Connection 
$query = "SELECT * FROM model"; 
$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_array($result) or die(mysql_error()); 
$brand_id = array(); 
$brand_id = array_unique($row['brand_id']); 
?>  
<table> 
    <?php for($i=0; $i<count(brand_id); $i++) {?> 
    <tr> 
     <td><?php echo $row['name'] ?></td> 
    <tr/> 
    <?php }?> 
</table> 

,並導致收益2 TR的2 brand_id,但顯示結果的所有型號名稱

<table> 
    <tr><td>Macbook, Iphone, Vostro</td></tr> 
    <tr><td>Macbook, Iphone, Vostro</td></tr>   
</table> 

如何解決它的結果是:

<table> 
    <tr><td>Macbook, Iphone</td></tr> 
    <tr><td>Vostro</td></tr>   
</table> 
+1

你有沒有在你的SQL有一個'集團BY'。 – 2012-07-22 03:48:54

+0

還有你的意思是: '

​​的Macbook,iPhone​​蘋果
'? – LukeP 2012-07-22 03:52:02

+1

恕我直言'$行['brand_id']'是一個整數而不是數組。 – 2012-07-22 03:53:11

回答

4

你需要使用一個聚合函數,GROUP_CONCAT,對於:

SELECT GROUP_CONCAT(b.`name`) 
FROM brand a 
      INNER JOIN model b 
       on a.id = b.brand_id 
GROUP BY a.`Name` 

SEE HERE FOR DEMO @ SQLFIDDLE