Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...

When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

Implementing An N-Level Nested Tree In PHP And PostgreSQL, Part 2

This article is part of the series “Implementing An N-Level Nested Tree In PHP And PostgreSQL”. Implementing An N-Level Nested Tree In PHP And PostgreSQL. Read more about Implementing An N-Level Nested Tree In PHP And PostgreSQL...


This series of articles is about implementing a nested tree using PHP and PostgreSQL. The theory and code in these articles also applies to MySQL, not just PostgreSQL.

An N-Level nested tree is a way to represent hierarchical data, such as a list of directories and files in your operating system, or the listings in a directory such as the Open Directory Project. There can be any number of levels and any number of elements within each level.

The goal is to be able lookup data in the tree as quickly as possible with minimal strain on resources. We will implementing this using the nested tree model by Joe Celko.

There are three articles in this series:

  1. Theory behind the nested tree model. How it all works and how to look up data
  2. Implementing the model in PHP and PostgreSQL
  3. Using the model in a real-world web application

This article – part 2 – covers the implementation of managing nested trees in PHP. The data we learned how to store in SQL in part 1 must be extracted somehow.

In this article, we will create a class used to extract data from the tree and to rebuild the tree. Each portion of the class will be developed separately, then all combined into a single class.

Additionally, I will make some suggestions on further functionality you can implement to improve your tree handling class.

Assumed knowledge for this article is all the material covered in part 1 of this series.

In This Article