frage zu include (unterseiten) & Smarty

PHP:
<?php

include("inc/config.php");

$smarty = new Smarty;

$conection = mysql_connect($host,$usr,$pw);
mysql_select_db($db);


$query = "SELECT text, title, links FROM gsl_news ORDER BY date DESC";

$newsqry = mysql_query($query) OR die (mysql_error());

$news = array();
while($row = mysql_fetch_assoc($newsqry))
{
	$news[] = $row;
}

$smarty->assign('newsbeitraege', $news);

Wenn ich es so mache, kommt eine leere Seite.
 
PHP:
$conection = mysql_connect($host,$usr,$pw);
mysql_select_db($db);


$query = "SELECT text, title, links FROM gsl_news ORDER BY date DESC";

$newsqry = mysql_query($query) OR die (mysql_error());

$news = array();
while($row = mysql_fetch_assoc($newsqry))
{
    $news[] = $row;
}

$smarty->assign('newsbeitraege', $news);

So. Wie gesagt, die Klasse darf nicht noch einmal instanziiert werden.
Allerdings lädst du hier gar kein Template und ich weiß nicht ob es so funktioniert.

Weiterhin würde ich dir raten, die news.php in deiner main.php zu includen und nicht im Template selbst.
 
So hatte ich es schon einmal.

Code:
Fatal error: Call to a member function on a non-object in /usr/export/www/vhosts/funnetwork/hosting/napo/gs-leih/news.php on line 19

Wenn ich die news in der main.php mache, wie soll ich dann die andern Seiten ambesten einbinden?
 
Poste bitte mal deine main.php, news.php, news.tpl und main.tpl.
Am liebsten gezippt.

Dann schaue ich mir das mal an.
 
Ok, dann fangen wir mal an...

main.php
PHP:
<?php
require_once('Smarty.class.php');

$smarty = new Smarty;
$smarty->template_dir = './';
$smarty->compile_dir = './';

$ref = 'news';



switch($ref) {
  case "news":
    $smarty->assign('section', 'news');
    include("news.php");
  break;
  
  default:
    include("news.php");
}

$smarty->display('main.tpl');
Ist relativ selbsterklärend eigentlich.
Ich wusste nicht woher die Variable $ref kam, von daher nahm ich mal an, dass sie eine Sektionsanzeige ist, die durch die URL kommt o. ä.
Diese sollte am besten in einem Switch dargestellt werden, da CrossSiteScripting Lücken entstehen könnten.

main.tpl
PHP:
## Statt deinem alten include Befehl, einfach diesen hier verwenden:
{include file="$section.tpl"}

Und das wars eigentlich schon. Die anderen beiden Dateien habe ich nicht verändert.
 
Zurück