Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

dbselect-field.inc.php

Go to the documentation of this file.
00001 <?php
00008 class DbSelectField extends SelectField
00009 {
00016     function __construct($name, &$parentForm, array $attribs = array())
00017     {
00018         if(!array_key_exists('query', $attribs))
00019             throw new Exception('Query not set');
00020 
00021         $query = $attribs['query'];
00022         unset($attribs['query']);
00023 
00024         $attribs['options'] = array();
00025         parent::__construct($name, $parentForm, $attribs);
00026         $this->options = $this->queryToValues($query);
00027     }
00028 
00033     function queryToValues($query)
00034     {
00035         $dbConn = $this->parentForm->dbConn;
00036         $res =& $dbConn->query($query);
00037         $ret = array();
00038 
00039         while($row = $res->fetchRow(DB_FETCHMODE_ASSOC))
00040         {
00041             if(!array_key_exists('value', $row) || !array_key_exists('title', $row))
00042                 throw new InvalidQueryException("Query did not include columns 'value' & 'title'");
00043 
00044             $ret[$row['value']] = $row['title'];
00045         }
00046 
00047         return $ret;
00048     }
00049 }
00050 ?>

Generated on Fri Oct 27 12:26:39 2006 for BaseJumper by doxygen 1.3.9.1