vLIB Einführung |
![]() |
Ich verwende LOOPS fast ausschließlich für Datenbankausgaben. Legen Sie bitte eine beliebige Datenbank plus Tabelle mit folgenden Spalten an:
Wir wollen in unserem ersten einfachen Beispiel zwei der Spalten in einer HTML-Tabelle ausgeben. Dieses geht relativ leicht mit der Methode setdbloop(), die Rückgabewerte eines RDBMS sofort in einem Template ausgeben kann.
require_once 'vlib/vlibTemplate.php';
$tmpl = new vlibTemplate('tmpl/db_simple.htm');
// DATABASE variables and query
require_once 'db_config.php';
mysql_connect($db_host, $db_user, $db_pw);
mysql_select_db($db_name);
$select = "SELECT name, city FROM $db_table";
$result = mysql_query($select);
$tmpl->setdbloop('table_data', $result);
$tmpl->pparse();
mysql_close();
Mit setdbloop() lassen sich die Daten nur ungefiltert aus der Datenbank ausgeben. Konvertierungen im Template sind mit vLIB nicht möglich, dazu ist der Befehl array_push() notwendig. Um das zu demonstrieren werden wir im nächsten Beispiel das Datum mit vlibDate formatiert ausgeben.
Wie man am Template sehen kann, ist hier keine Logik hinterlegt. Das ist der Ansatz, der von vLIB konsequent verfolgt wird: Alle (Programmier)Logik sollte im PHP-Skript erfolgen.
<table border="1" width="70%" summary="MySQL data in a table using TMPL_LOOP and SETDBLOOP">
<caption>MySQL data in a table using TMPL_LOOP and SETDBLOOP</caption>
<thead>
<tr>
<th align="left">name</th>
<th align="left">city</th>
</tr>
</thead>
<tbody>
<tmpl_loop name='table_data'>
<tr>
<td valign="top">{tmpl_var name='name'}</td>
<td valign="top">{tmpl_var name='city'}</td>
</tr>
</tmpl_loop>
</tbody>
</table>
Die Datei "db_config.php" enthält alle notwendigen Variablen um die Verbindung zum RDBMS und der Datenbank herzustellen. Die Datei könnte beispielsweise folgenden Inhalt haben:
<?php $db_host = 'localhost'; $db_name = 'vlib'; $db_user = 'admin'; $db_pw = 'admin123'; $db_table = 'vlibtemplate'; ?>
Wenn man im Template keine Logik hinterlegen kann, ist es dann überhaupt möglich mit setdbloop() Daten aus einer Tabelle zu manipulieren? Ja und Nein. Nein, weil die Methode das nicht hergibt. Ja, weil String-, Datums- und sonstige Funktionen mit SQL sehr wohl zu realisieren sind. Selbst IF-Strukturen, die zwei Datenbankfelder miteinander vergleichen, sind mit MySQL möglich.