Seite 1 von 1

Datenbank Auslesen => in Teamplatesystem

Verfasst: 14.11.2006 19:40
von Skeita
Hallo liebe Community...

Ich sitze nun schon den ganzen Tag an meinem "CMS" (http://phpbb.j-corner.de/PHP), aber ich komme bei der Einrichtung des Newssystem nicht voran!

Ich habe es geschafft, mein "CMS" in ein Templatesystem (habe das von phpBB gemopst ^^) zu integrieren und nun möchte ich die Werte, die ich aus der DB auslese (Autor-Name, Datum, Titel) natürlich nicht via echo in der news.php sondern mittels dieser "Variablen" in der news_body.tpl ausgeben. (zB {newsrow.AUTHOR})

Ich habe dafür zum einen die news.php:

Code: Alles auswählen

<?php
    $root_path = './';
    $pagename = "News";
    include($root_path . "includes/header.php");

    $template->set_filenames(array(
            "NEWS" => "templates/pimpBlue/news_body.tpl"
    ));

    $sql = "SELECT news_id, news_title, news_text, news_author, news_date FROM page_news ORDER BY news_date DESC";
    $result = mysql_query($sql) OR die(mysql_error());

    if(mysql_num_rows($result)) { // gucken ob was im Query drinsteckt
        while($row = mysql_fetch_array($result)) {
            $template->assign_block_vars('newsrow', array(
                'DATE' => $row['news_date'],
                'AUTHOR' => $row['news_author'],
                'TITLE' => $row['news_title'],
        	       'TEXT' => nl2br($row['news_text'])
                )
           );
        }
    } else {
        echo "Es sind keine News in der Datenbank vorhanden<br />\n";
    }
    include($root_path . "includes/vars.php");

    $template->pparse("NEWS");

    include($root_path . "includes/footer.php");
?>
und zum anderen die news_body.tpl:

Code: Alles auswählen

      	<table width="100%" class="dashedline" cellpadding="5" cellspacing="0" align="center" valign="top">
	  <tr>
	      <th colspan="2" class="cat">{L_NEWS}</th>
	  </tr>
  	  <tr>
	      <td class="row1" width="40%"><span class="explaintitle" style="font-weight: bold;">Autor:</span></td><td class="cat" width="60%">&nbsp;{newsrow.AUTHOR}</td>
	  </tr>
         </table>
Wo liegt der fehler? oO
Bisher kriege ich nämlich nur das angezeigt: http://phpbb.j-corner.de/PHP/news.php

Vielen Dank bereits im Vorraus.
Skeita


P.S. Nicht über den Code meckern...lerne erst seit heute PHP...
:-? [/code]

Verfasst: 14.11.2006 20:00
von mgutt
hast du innerhalb der while schleife mal geschaut, ob $row gefüllt ist? z.B. mit print_r oder echo

Gruß

Verfasst: 14.11.2006 20:10
von Skeita
Das Script sah ja zwischenzeitlich so aus:

Code: Alles auswählen

<?php
    $root_path = './';
    $pagename = "News";
    include($root_path . "includes/header.php");

    $template->set_filenames(array(
            "NEWS" => "templates/pimpBlue/news_body.tpl"
    ));

    $sql = "SELECT news_id, news_title, news_text, news_author, news_date FROM page_news ORDER BY news_date DESC";
    $result = mysql_query($sql) OR die(mysql_error());

    if(mysql_num_rows($result)) { // gucken ob was im Query drinsteckt
        while($row = mysql_fetch_array($result)) {
            echo $row['news_author'];
            echo $row['news_title'];
            echo nl2br($row['news_text']);
        }
    } else {
        echo"<p>Keine News vorhanden</p>\n";
    }

    include($root_path . "includes/vars.php");

    $template->pparse("NEWS");

    include($root_path . "includes/footer.php");
?>
Und das hat super funktioniert (müsste also erfüllt sein)...nun will ich das aber in der news_body.tpl ausgeben und bin komplett ratlos!

Verfasst: 14.11.2006 20:14
von mgutt
Hast Du error reporting auf ALL gesetzt? Damit erkennt man hier und da schneller Fehler.

In wie weit wird denn das Templatesystem included? Ich sehe nur die header.php.. passiert das da?

Verfasst: 14.11.2006 20:14
von S2B

Code: Alles auswählen

       <!-- BEGIN newsrow -->
       <tr>
         <td class="row1" width="40%"><span class="explaintitle" style="font-weight: bold;">Autor:</span></td><td class="cat" width="60%">&nbsp;{newsrow.AUTHOR}</td>
       </tr> 
       <!-- END newsrow -->
:P

Verfasst: 14.11.2006 20:22
von Skeita
@S2B: *umfall* ich sehe den Code vor lauter PHP nicht mehr... (oder so...)
Ich danke dir vielmals!

@mgutt: Werde deinen Rat beherzigen und error_reporting "anschalten".

LG, Skeita