Hauke Hammerich: Verbindung von Templates und Daten. Aber wie??

Hallo!

Ich habe folgendes Problem. Ich möchte gerne Daten aus einer MySQL-Db auf einer Seite ausgeben.
Das funktioniert schon mittels PHP.
Nun habe ich folgendes Problem, dass ich nicht weiß wie ich diese Daten auf meiner Startseite an einer bestimmten Stelle ausgeben kann.
Ich habe nämlich um etwas Übersicht reinzukommen eine Template-Datei angelegt in der ich den Aufbau der Startseite mittels Tabellen und HTML-Code strukturiert habe.
Die Seite sieht so aus, dass ich mittels divs 3 "Frames" habe. Und zwar Banner, Navigation links und für den Text die Mitte.
Nun möchte ich gerne auf der Startseite gerne eine Newsbox haben in der ich den Text aus der Datenbank auslesen möchte.

Vielleicht kann mir ja jetzt jemand weiterhelfen!
Oder muss ich jetzt doch die start.tpl weglassen und alles in die start.php schreiben?
Gruß
Hauke

Ich habe dazu eine index.php angelegt, die folgendermaßen aussieht:

<?php
error_reporting(E_ALL);
include "inc/config.php";
echo "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n";
echo ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n";
echo "<html>\n";
echo "    <head>\n";
echo "        <title>- -->Freiwillige Feuerwehr Negernbötel<--</title>\n";
echo "        <link rel="stylesheet" type="text/css" href="page.css" />\n";
echo "        <meta http-equiv="Content-Type"content="text/html; charset=ISO-8859-1" />\n";
echo "    </head>\n";
echo "    <body>\n";
echo " <center>\n";
echo "        <div id="root">\n"; // ganz oberer Div-Holder
echo "            <div id="banner">\n"; // banner
include "banner.php";
echo "            </div>\n";
echo "            <div id="links">\n"; // linkes Menu
include "menue.php";
echo "            </div>\n";
echo "            <div id="mitte">\n"; // Inhalt/Hauptframe
include "start.php";
echo "            </div>\n";
echo "            <br style="clear:both;" />\n"; // css-float beenden
echo "       </div>\n";
echo " </center>\n";
echo "    </body>\n";
echo "</html>\n";?>
-------------------------------------------------------------------
In der menue.php ist nur das menue als Aufzählung drin.

In der start.php steht folgendes drin:

echo "  <div id="hauptframe">\n";
include "start.tpl";
echo "  </div>\n";
-------------------------------------------------------------------

Die start.tpl findet man hier-->http://www.hhammerich.de/hpcss/start.tpl

  1. Hatte schon mal gepostet, aber wegen Doppelposting verschwand dein Beitrag während ich abgeschickt hab und weg war's ...

    Also nochmal:
    PHP ist dazu da, in deinen HTML Code reinzuschreiben! Es heißt nicht umsonst PHP: Hypertext Preprocessor.
    PHP gibt nichts anderes als schönes reines HTML aus (oder sollte zumindest).
    Du kannst nicht irgendwo Daten in ein Skript laden, die dann in einer anderen HTML-Datei magisch eingefügt werden, die von PHP überhaupt nicht angefasst (geparst) wird. Außer vielleicht über Tricksen mit DHTML/JScript ...

    Lösung: Mach die Datenbankabfrage in PHP genau an der Stelle, wo du auch die Ausgabe haben willst. In deinem Fall ist das wohl die Template-Datei.

    Der Yeti

    --
    Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
    Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
    Und bin so klug als wie zuvor!
    1. Hatte schon mal gepostet, aber wegen Doppelposting verschwand dein Beitrag während ich abgeschickt hab und weg war's ...

      Also nochmal:
      PHP ist dazu da, in deinen HTML Code reinzuschreiben! Es heißt nicht umsonst PHP: Hypertext Preprocessor.
      PHP gibt nichts anderes als schönes reines HTML aus (oder sollte zumindest).
      Du kannst nicht irgendwo Daten in ein Skript laden, die dann in einer anderen HTML-Datei magisch eingefügt werden, die von PHP überhaupt nicht angefasst (geparst) wird. Außer vielleicht über Tricksen mit DHTML/JScript ...

      Lösung: Mach die Datenbankabfrage in PHP genau an der Stelle, wo du auch die Ausgabe haben willst. In deinem Fall ist das wohl die Template-Datei.

      Der Yeti

      Ok, das wollte ich nur mal bestätigt wissen!! Danke!!

      1. Wenn du die PHP-"Verseuchung" so minimal wie möglich halten willst, kannst du ja vor dem include die Daten auslesen, aufbereiten und in einen String (z.B. $newstext) speichern und dann im Template nur noch <?=$text?> einfügen.
        Der Yeti

        --
        Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
        Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
        Und bin so klug als wie zuvor!