Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để danh mục cấp độ đầu tiên chỉ hiển thị một lần?

chỉ xuất ra catname khi nó thay đổi. Trước tiên, bạn cũng cần sắp xếp truy vấn của mình theo category_name.

$row = mysql_fetch_array($result);
$catname = $row["category_name"];
$subcatname = $row["subcategory_name"];
$last = $catname;

echo "<li>$catname</li><ul>"

while($row = mysql_fetch_array($result)) {
    $catname = $row["category_name"];
    $subcatname = $row["subcategory_name"];
    if($last != $catname){
        echo "</ul><li>$catname</li><ul>"
    }
    echo "<li>$subcatname</li>";
    $last = $catname;
}
echo "</ul>";

Chỉnh sửa:Chỉ cần đọc lại câu hỏi đầy đủ và muốn nói rằng khi nói đến cây phân cấp, sử dụng cha / con (hoặc category / sub / subsub) không phải là phương pháp tốt nhất. Mặc dù nó hoạt động, nhưng nó thường yêu cầu nhiều truy vấn và hàm đệ quy để hiển thị. Một cách tiếp cận tốt hơn là sử dụng tập hợp lồng nhau được tạo ra cho chính xác mục đích này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL - Truy xuất Dấu thời gian giữa các ngày

  2. chèn nhiều trường bằng vòng lặp foreach

  3. Làm cách nào để thay đổi Đối chiếu cột mà không làm mất hoặc thay đổi dữ liệu?

  4. Mysql:Làm thế nào để chọn các nhóm có các giá trị nhất định?

  5. Cách đối phó với độ dài dòng khổng lồ được tạo bởi mysqldump