[CLUE-Tech] ASP alternative.
Dale K. Hawkins
dhawkins at cdrgts.com
Wed Dec 3 15:49:05 MST 2003
David Anselmi <anselmi at americanisp.net> writes:
> Here's an example. In ASP, a few lines of code run a database query
> and a few more hook it into a "datagrid control" (most of that can be
> done drag and drop but that isn't too important).
I thought I'd send a follow example of using smarty and
DB_DataContainer with php. All very powerful and simple code.
Is this few enough lines of code? :-)
========== people.php 8< ==========
require 'Smarty.class.php';
require_once 'DB.php';
require_once 'DB/sqlite.php';
require_once('DB/DataContainer.php');
class Person extends DB_DataContainer {
var $firstname;
var $lastname;
var $mobile;
function Person($dbh, $params) {
overload('Person');
if (is_array($params)) {
$params[table] = $params[table] ? $params[table] : 'person';
} else {
$this->setTable("person");
}
$this->DB_DataContainer($dbh, $params);
}
}
// Define a DSN
// $dsn = "sqlite://dummy:@localhost///tmp/person.db?mode=0644";
$dsn = array (
'phptype' => "sqlite",
'database' => "/tmp/person.db",
'mode' => 0644
);
$dbh = &new DB_sqlite();
$dbh->connect($dsn, array('persistent'=> true) );
$smarty = new Smarty;
$smarty->compile_check = true;
$smarty->debugging = true;
$params[classname] = 'person';
$params[limit] = 10;
$people = Person::getObjects($dbh, $params);
$smarty->assign('people', $people);
$smarty->display('people.tpl');
========== people.tpl 8< ==========
{include file="header.tpl" title="Phone Book"}
<table class="select-list">
<tr class="header">
<th>Name</th>
<th>Number</th>
</tr>
{foreach from=$people item=person}
<tr class="{cycle values="odd,even"}">
<td class="item"><a href="edit-person.php?tid={$person->id}" {popup text="Edit Entry"}>{$person->lastname}, {$person->firstname}</a></td>
<td class="item">{$person->mobile}</td>
</tr>
{/foreach}
</table>
<p>
{include file="footer.tpl"}
More information about the clue-tech
mailing list