PHP Classes
elePHPant
Icontem

File: examples/advanced_pdo.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Thomas Björk  >  TTreeList  >  examples/advanced_pdo.php  >  Download  
File: examples/advanced_pdo.php
Role: Example script
Content type: text/plain
Description: Advanced example using PDO
Class: TTreeList
Create a binary tree from array or database result
Author: By
Last change:
Date: 11 months ago
Size: 1,699 bytes
 

Contents

Class file image Download
<?php
include '../treelist.php';

// Create a map with a few character combinations
$map = array('as', 'be', 'ca', 'da', 'en', 'fo', 'gu', 'he', 'in', 'ja');

// Create a database (in memory)
$db = new PDO('sqlite::memory:');
$db->exec('CREATE TABLE testdata (id integer primary key, name string, dummy integer);');
// Create 1000 entries in the database by creating random character combinations
// based on the map defined earlier
for($i = 0; $i < 1000; $i++) {
 
$value = '';
  for(
$j = 0; $j < 3; $j++) {
   
$value .= $map[rand(0, 9)];
  }
 
$db->exec('INSERT INTO testdata (name,dummy) VALUES (\''.$value.'\', '.rand(0,100).');');
}

// Execute a query that returns all 1000 entries
$rs = $db->query('SELECT * FROM testdata', PDO::FETCH_ASSOC);

// Create a TreeList
$tree = new TTreeList();
// Assign the result of the database query as the data content for the tree
$tree->AssignPDO($rs);

// Check how many records we have
echo "The treelist has ".count($tree)." nodes".PHP_EOL;
// Loop the tree as an array
foreach($tree as $node) {
  echo
' '.$node["id"].' - '.$node["name"];
}
echo
PHP_EOL;

// Build the tree and index it on the name field
echo "Building tree".PHP_EOL;
$tree->Build('name');

// Display the amount of nodes in the tree (this will probably be somwhere
// around 620-640 items)
echo "There is ".$tree->treeCount." nodes in the tree".PHP_EOL;

// Get the first node in the treelist
$node = $tree->GetFirst();
$count = 0;
// Walk through the treelist
while($node !== null) {
 
$count++;
  echo
$node['name'].' ';
 
$node = $node->next;
}
echo
PHP_EOL;
// Display how many nodes we have passed (should be equal to the treeCount)
echo "We walked ".$count." nodes".PHP_EOL;
?>