Template-Problem

daniel_sun

Erfahrenes Mitglied
Hallo,

ich erstelle Templates eigentlich schon immer dach diesem Tutorial http://php-coding-standard.de/php_template_engine.php.

Ich muss gestehen, dass ich mich nur seit fast 10 Monaten nicht mehr mit PHP beschäftigt habe. Nun ist es mal wieder soweit nur irgendwas läuft nun bei den Templates schief und ich komme nicht weiter.

Hier das PHP-Script was das Template aufruft:

PHP:
<?php
include ("../inc/config.php");

mysql_connect($db_host,$db_user,$db_pass) or die ("Es konnte keine Verbindung zum SQL-Server herstestellt werden");
mysql_select_db($db_database);

$sql = "SELECT * FROM katalog";
$result = mysql_query($sql);

$table_data = array();
    while ($row = mysql_fetch_assoc($result))
    {
        array_push(
            $table_data,
            array(
                'id' => $row['katalog_id'],
                'name' => $row['katalog_name']
            )
        );
       
    }
require_once 'tpl/list_katalog.tpl';
?>

Hier das Template selber:
PHP:
<html>
    <head>
        <title>Fragenkatalog auflisten</title>
    </head>
    <body>
        <center><b>Liste aller Fragenkataloge</b></center>
        <table border="1" align="center">
            <tr>
                <th colspan="3" align="left"><i>//</i></th>
            </tr>
            <tr>
                <td><b>ID</b></td><td><b>Name</b></td><td><b>#</b></td>
            </tr>
            <?php foreach ($table_data as $td_row): ?>
                <tr>
                    <td><?=$td_row['id']?></td><td><?=$td_row['name']?></td><td><a href="fragen.php?action=auflisten&kid=<?=$td_row['id']?>">Fragen anzeigen</a></td>
                </tr>
            <?php endforeach; ?>
        </table>
    </body>
</html>

Problem:

Die Tabelle wird bei mir angezeigt. Auch eine zusätzliche Zeile (da in der DB ein Datensatz vorhanden ist.) Das Problem ist das die Zeile (bis auf den Link) nichts angezeigt wird. In dem Link wird die ID nicht angezeigt. Für die arrays wird nichts eingesetzt.

Hat sich irgendwas bei PHP geändert das das so nun nicht mehr funktioniert? Bin mit meinem Latain am ende und hoffe ihr könnt helfen!

Danke im vorraus.

Gruß
daniel_sun
 
1. Der mysql_*() könnte fehlgeschlagen sein. Bau doch mal ein mysql_error() dahinter. Analog zu mysql_connect(), also bei mysql_select_db(), mysql_query() und mysql_fetch_assoc().

2. Für Debugging hilft es, das error_reporting hoch zu setzen und Fehler-Anzeige einzuschalten (an den Anfang des Scripts):

PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);

3. short_open_tag muss eingeschaltet sein, um deine Art der PHP-Tags zu unterstützen: http://php.net/manual/de/ini.core.php
 
Zurück