<?php
 
/**
 
 * A class to retrieve info about database tables.
 
 * 
 
 * @author Christian Velin, [email protected]
 
 * @version 0.2
 
 * @since 0.1 Added phpdoc tags to each generated variable and method.
 
 * @package DbCodeBuilder
 
 * 
 
 * Copyright (C) 2007  Christian Velin
 
 *
 
 * This program is free software; distributed under the artistic license.
 
 */
 
class AccessBuilder
 
{
 
    /**
 
     * Variable to hold the db connection.
 
     *
 
     * @var unknown_type
 
     */
 
    private $link;
 
    
 
    /**
 
     * An array to store all the tables in the selected db.
 
     *
 
     * @var Array
 
     */
 
    private $tables = array();
 
    
 
    /**
 
     * A recursive array to hold all the column info for each of the tables.
 
     *
 
     * @var Array
 
     */
 
    private $tableInfo = array();
 
    
 
    
 
    
 
    public function __construct($host, $user, $pass, $db)
 
    {
 
        $this -> link = mysql_connect($host, $user, $pass);
 
        mysql_select_db($db);
 
    }
 
    
 
    
 
    
 
    /**
 
     * A method to discover what tables are stored in the selected db and to store that information.
 
     *
 
     */
 
    public function setTables()
 
    {
 
        $result = mysql_query("SHOW tables", $this -> link); 
 
        while($row = mysql_fetch_row($result)) 
 
        { 
 
            $this -> setColumnInfo($row[0]); 
 
            array_push($this -> tables, $row[0]);
 
        }
 
    }
 
    
 
    
 
    
 
    /**
 
     * A method to get and store all information about the columns in each table.
 
     *
 
     * @param unknown_type $table
 
     */
 
    private function setColumnInfo($table)
 
    {
 
        $result = mysql_query("SHOW COLUMNS FROM " . $table);
 
 
        if (mysql_num_rows($result) > 0)
 
        {
 
            $info = array();
 
            while ($row = mysql_fetch_assoc($result))
 
            {
 
                array_push($info, $row);
 
            }
 
            array_push($this -> tableInfo, $info);
 
        }
 
    }
 
    
 
    
 
    
 
    /**
 
     * Method that returns the table information.
 
     *
 
     * @return Array an array with all available tables.
 
     */
 
    public function getTables()
 
    {
 
        return $this -> tables;
 
    }
 
    
 
    
 
    
 
    
 
    /**
 
     * Method that returns the column information.
 
     *
 
     * @return unknown
 
     */
 
    public function getColumnInfo()
 
    {
 
        return $this -> tableInfo;
 
    }
 
}
 
 
 
?>
 
 |