Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да показвам йерархични данни от NESTED SET с PHP?

Въз основа на връзката, която Stu ми показа, урокът показва тази заявка за определяне на дълбочината:

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

Така че нещо подобно трябва да работи:

<?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 />';
}
?>

Това трябва да изведе:

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. групово вмъкване на списъчни стойности с SQLAlchemy Core

  2. Показване на данни от MYSQL; Грешка в SQL израза

  3. Как да конфигурирате hibernate.cfg.xml към applicationContext.xml като източник на данни?

  4. Конфигурация на MySQL / CodeIgniter на OpenShift

  5. Как да надстроите MySQL 5.5 до 5.6 на Ubuntu 14.04