Hallo,
derzeit versuche ich mich, in Sachen Templates.
Ich habe folgende Klasse:
// Template-Klasse.php
Diese Klasse sucht nach Platzhaltern und ersetzt diese.
Bei einem einzelnen Datensatz funzt dies auch, aber wenn ich eine Ergebnistabelle erzeugen möchte, funzt es nicht.
Die Template-Datei sieht so aus:
// Result.html
Wenn ich mir aber die Daten aus der DB hole und die mir auflisten lassen will, bringt er mir immer nur einen Datensatz zur Ausgabe.
// Result.php
Frage: Wieso funzt das in einer Schleife nicht?
GN
derzeit versuche ich mich, in Sachen Templates.
Ich habe folgende Klasse:
// Template-Klasse.php
PHP-Code:
class parser
{
var $search = array();
var $replace = array();
var $content = "";
// die Template-Datei laden
function loadTemplatefile($file)
{
$this->content = file_get_contents($file);
}
// die Zeilendaten, den Template-Platzhaltern zuweisen
function setVariables($search, $replace)
{
$this->search[$search] = $search;
$this->replace[$search] = $replace;
}
// die Webseite ausgeben
function show()
{
print str_replace($this->search, $this->replace, $this->content);
}
}
Bei einem einzelnen Datensatz funzt dies auch, aber wenn ich eine Ergebnistabelle erzeugen möchte, funzt es nicht.
Die Template-Datei sieht so aus:
// Result.html
Code:
<table> <thead> <tr> <th>ID:</th> <th>Bezeichnung:</th> </tr> </thead> <tbody> <tr> <td>{ID}</td> <td>{Bezeichnung}</td> </tr> </tbody> </table>
// Result.php
PHP-Code:
$sql = $db->query("SELECT id, bezeichnung FROM daten WHERE id BETWEEN 1 AND 100);
require_once " Template-Klasse.php ";
$template = new parser();
$template->loadTemplatefile("Result.html");
$i = 0;
while($row = mysql_fetch_array($sql, MYSQL_ASSOC))
{
$template->setVariables('{ID}', $row['id']);
$template->setVariables('{Bezeichnung}', $row['bezeichnung']
$i++;
}
$template->show();
Frage: Wieso funzt das in einer Schleife nicht?
GN
Kommentar