<?php
require "SQL_Object.php";
// Example extended class
class forumObject extends SQL_Object {
function buildForum() {
$sql = "SELECT * FROM `forum_cats` WHERE `PID` = '{$this->data[$this->pointer]['ID']}'";
$this->object[$this->pointer]['Forum'] = new forumObject($sql);
}
}
// Make sure you connect to your database first.
$id_link = mysql_connect("localhost", "user", "password");
mysql_select_db("database");
// ------------------------------------------------
// Example Recursive Forum Builder.
function buildForumCategories($forums) {
// Build a container so the child boards indent.
echo "<div style=\"margin-left: 10px;\">";
// We can use foreach to increment the internal pointer on the class.
foreach ($forums as $key => $forum) {
// Echo the forum name. (The field name is the MySQL row or whatever you specified in the query.
echo $forums->name . "<br />";
// We can see if there are any child forums using count.
// $forums->Forum will invoke PHP 5's magic method "__get"
// SQL_Object also implements countable interface so we can
// override the count function with our own.
if (count($forums->Forum) > 0) {
// Call child boards.
buildForumCategories($forums->Forum);
}
}
// We can also manually do it with a for:
// Example: for ($forums->rewind(); $forums->valid(); $forums->next())
//
// We could use the internal objects, but the methods work just fine.
echo "</div>";
}
// Do you're normal query for the initial boards.
$sql = "SELECT * FROM `forum_cats` WHERE `PID` = 0";
// Pass the query to the extended class.
$forums = new forumObject($sql);
// Build the forum
buildForumCategories($forums);
|