Cities Example Output

Selected Node ID: 1

البلدان العربية / Arab Countries

Celko Visitation Parameters (Parent ID=1, Left=1, Right=5354)

Some SQL example implements Celko visitation model features:


Cities Example Code:

try {
/*** connect to SQLite database ***/
$dbh = new PDO('sqlite:/path/to/cities.db');

$city_id  $_GET['city'];
      if (!
$city_id) { $city_id 1; } 

$sql "select * from city where parent_id=$city_id and id>1 order by arabic";
'<form action="City.php" method="get" name="frm"><p align="center">';
"Selected Node ID: $city_id <br /><br />";

$sth $dbh->prepare("select * from city where id=$city_id");
$result $sth->fetch(PDO::FETCH_ASSOC);

$result['arabic'] . ' / ' $result['english'] . '<br />';
      if (!empty(
$result['latitude'])) {
'Latitude: ' $result['latitude'];
', Longitude: ' $result['longitude'];

'<br /><br /><select name="city" dir="rtl" onChange="document.frm.submit()">';
'<option>- إختر رجاء -</option>';

      * You will have noticed that we can iterate over the result set directly
      * with foreach. This is because internally the PDO statement implements 
      * the SPL traversble iterator, thus giving all the benifits of using SPL.
      * The greatest benifit of this is that SPL iterators know only one element 
      * at a time and thus large result sets become manageable without hogging 
      * memory.
foreach ($dbh->query($sql) as $row) {
'<option value="' $row['id'] . '">';

          if (
$row['arabic'] == '') {
$title $row['english'];
          } else {
$title $row['arabic'];

'</select> ';
'<input type="button" onclick="window.location=\'City.php\';"
             value="قم باختيار جديد" /></form></p>'
// Close the databse connection
$dbh null
  } catch(
PDOException $e) {

Total execution time is 0.0016179084777832 seconds
Amount of memory allocated to this script is 244072 bytes

Names of included or required files: