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

Làm thế nào để hiển thị dữ liệu NESTED SET phân cấp với PHP?

Dựa trên liên kết mà Stu đã cho tôi xem, hướng dẫn hiển thị truy vấn này để xác định độ sâu:

SELECT node.name, (COUNT(parent.name) - 1) AS depth
FROM nested_category AS node,
        nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
GROUP BY node.name
ORDER BY node.lft

Vì vậy, một cái gì đó như thế này sẽ hoạt động:

<?PHP
$query = 'SELECT node.name, (COUNT(parent.name) - 1) AS depth
    FROM nested_category AS node,
            nested_category AS parent
    WHERE node.lft BETWEEN parent.lft AND parent.rgt
    GROUP BY node.name
    ORDER BY node.lft';

$result = mysql_query($query, $db) or die (mysql_error($db));
while ($row = mysql_fetch_assoc($result)) {
    for ($i = 0; $i < $row['depth']; $i++) {
        echo '==>';
    }

    echo $row['name'];
    echo '<br />';
    echo '<br />';
}
?>

Điều này sẽ xuất ra:

Saws
==>Chainsaws
==>==>Red
==>==>Yellow
==>Circular Saws
==>Other Saws


  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:nhiều bảng hay một bảng có nhiều cột?

  2. Câu lệnh Laravel 5.6 withCount and where

  3. Có giải pháp nào để xác định ràng buộc duy nhất coi các giá trị NULL là không khác biệt không?

  4. Kết nối mysql tiêu chuẩn qua cổng 3306 có an toàn trong Sequel Pro không?

  5. Cách kết nối nhiều cơ sở dữ liệu trong PHP, MYSQLi &PDO