得到像树mysql的结果

时间:2013-02-22 11:11:59

标签: php mysql left-join

您好我在这里有一些代码

$query = mysql_query("SELECT   `categories`.`category_name` ,  `categories`.`id`, `subcategories`.`subcategory_name`, `subcategories`.`sub_id` 
FROM  `categories`  
LEFT JOIN  `subcategories` ON  `categories`.`id` =  `subcategories`.`category_id` ORDER BY category_name ");

while($row = mysql_fetch_assoc($query)){
$id = $row['id'];
$name = $row['category_name'];
$sub_name = $row['subcategory_name'];
echo "id--->",$id, " - ", $name, " ---> ", $sub_name, "<br />" ;
}

我的结果就是这个 id ---&gt; 1 - Αθλητισμός---&gt; ΟργαναΓυμναστικής
id ---&gt; 1 - Αθλητισμός---&gt;水上运动
id ---&gt; 1 - Αθλητισμός---&gt; ΠολεμικέςΤέχνες
id ---&gt; 1 - Αθλητισμός---&gt; Ιππασία - ΙππικοίΌμιλοι
id ---&gt; 1 - Αθλητισμός---&gt;网球俱乐部
id ---&gt; 1 - Αθλητισμός---&gt; ΑθλητικάΈπαθλα
id ---&gt; 1 - Αθλητισμός---&gt; Γήπεδα5χ5 - Mundialito
id ---&gt; 1 - Αθλητισμός---&gt; ΧιονοδρομικάΚέντρα
id ---&gt; 1 - Αθλητισμός---&gt; PaintBall - Χρωματοσφαίριση
id ---&gt; 1 - Αθλητισμός---&gt;健身俱乐部 - Γυμναστήρια
id ---&gt; 1 - Αθλητισμός---&gt; ΑναρριχητικάΠεδία
id ---&gt; 1 - Αθλητισμός---&gt; Ποδήλατα
id ---&gt; 1 - Αθλητισμός---&gt; ΑθλητικάΕίδη
id ---&gt; 1 - Αθλητισμός---&gt;高尔夫俱乐部 - ΓήπεδαΓκολφ

我怎样才能使我的结果显示如下

    Αθλητισμός

  • ΟργαναΓυμναστικής
  • 水上运动
  • ΠολεμικέςΤέχνες
  • 1 个答案:

    答案 0 :(得分:1)

    试试这个..

    echo '<ul>';
    
    $categoryName = FALSE;
    
    while($row = mysql_fetch_assoc($query)){
    
      $id = $row['id'];
      $name = $row['category_name'];
      $sub_name = $row['subcategory_name'];
    
      if ( $categoryName != $name) {
         echo "$name";
      }
    
      echo "<li>$sub_name</li>";
    
      $categoryName = $name;
    }
    echo '</ul>';