Probleme mit Klasse in WhileSchleife

Kalma

Erfahrenes Mitglied
Hey,

ich denke es ist die Klasse die in der WhileSchleife das Problem macht.

Ich habe eine Klasse für die NewsAusgabe geschrieben (endlich fang ich auch an^^) und gebe nun die News in einer Schleife aus.

Aber, wenn ich nun auf die Seite gehe, sieht das so aus:
Geschrieben von am


[vergrößern]
Geschrieben von am


[vergrößern]
Geschrieben von am


[vergrößern]
Geschrieben von am


[vergrößern]
Geschrieben von am


[vergrößern]
Geschrieben von am


[vergrößern]
Geschrieben von am


[vergrößern]

Obwohl nur 1 Eintrag vorhanden ist, der auch nicht wirklich angezeigt wird.

Hier ist mein Quellcode für den Aufruf:
PHP:
<?php
	/***************************************************************************
	*                            news.php
	*--------------------------------------------------------------------------
	*   begin                : Sunday, Jun 22, 2007
	*   copyright            : (C) 2007 David Floegel
	*   email                : david.floegel@gmx.de
	*
	***************************************************************************/
	 
	error_reporting(E_ALL);
	 
	//----[Klassen / Funktionen / Dateien einbinden]---
	# Smarty #
	require_once 'Smarty/Smarty.class.php';
	$tpl	= new Smarty;
		 
	# Datenbank #
	require_once 'functions/function.mysql.php';
	require_once 'class/mysql.class.php';
	$mysql	= new mysql;
	$mysql->set($host, $user, $passwort, $datenbank);


	//----[Inhalt: News auslesen]----
	# News Klasse #
	require_once 'class/news.class.php';
	$news	= new news;

	# Werte für Blätterfunktion #
	$items_per_page		= 4;
	$link				= 'news.php';
	$item_count 		= mysql_num_rows(mysql_query('SELECT * FROM news'));
	$page_count 		= ceil($item_count/$items_per_page);
	$offset 			= (isset($_GET['page'])) ? intval($_GET['page']) * $items_per_page - $items_per_page: 0;

	# Blätterfunktion einbinden
	require_once 'functions/function.blaettern.php';

	# Query #
	$query	=	'SELECT 
					*
				FROM
					news
				ORDER BY
					`news_id` DESC
				LIMIT
					'.$offset.', '.$items_per_page;
	# Result und Select-Variable #
	$result	=	mysql_query($query);
	
	# Prüfen, ob Einträge vorhanden sind #
	if (mysql_num_rows($result) == 0) {
		echo '';
	} else {
		# Array erstellen #
		$news_array = array();
		while($select = mysql_fetch_assoc($result))
		{
			# Variablen auslesen und in Klasse übergeben #
			$id			= $select['news_id'];
			$autor		= $select['news_autor'];
			$titel		= $select['news_titel'];
			$text		= $select['news_text'];
			$erstellt	= $select['news_erstellt'];
			$typ		= $select['news_typ'];
			$file		= $select['news_file'];
			$news->set($id, $autor, $titel, $text, $erstellt, $typ, $file);
			
			# Werte in $news_array schreiben #
			$news_array['autor']		= $news->autor();
			$news_array['titel']		= $news->titel();
			$news_array['text']			= $news->text();
			$news_array['datum']		= $news->datum();
			$news_array['file']			= $news->news_file();
			$news_array['file_source']	= 'loads/news/'.$select['news_file'];

			$news_array[]	= $select;
		}
		
		$tpl->assign('news_array', $news_array);
	}
	
	//----[Datei aufrufen]---
	$tpl->display('news.tpl');
?>

und hier die Klasse
PHP:
<?php
	/***************************************************************************
	 *                            news.class.php
	 *--------------------------------------------------------------------------
	 *   begin                : Sunday, Jun 22, 2007
	 *   copyright            : (C) 2007 David Floegel
	 *   email                : david.floegel@gmx.de
	 *
	 ***************************************************************************/
	 
	 class news {
	 	//----[Variablen definieren]----
		var $news_id;
		var $news_autor;
		var $news_titel;
		var $news_text;
		var $news_erstellt;
		var $news_typ;
		var $news_file;
		
		//----[Funktion für Setzen der Werte]----
		function set($id, $autor, $titel, $text, $erstellt, $typ, $file)
		{
			$this->news_id 			= $id;
			$this->news_autor 		= $autor;
			$this->news_titel 		= $titel;
			$this->news_text 		= $text;
			$this->news_erstellt 	= $erstellt;
			$this->news_typ 		= $typ;
			$this->news_file		= $file;
		}
		
		//----[Funktion für den Autor]----
		function autor()
		{
			# Query #
			$query	=	'SELECT
							*
						FROM
							user
						WHERE
							`user_id`="'.$this->news_autor.'"
						LIMIT
							1';
			$result	=	mysql_query($query) or die(mysql_error());
			$select	=	mysql_fetch_array($result);
			
			$nickname	= $select['user_nickname'];
			$nickname = empty($nickname) ? 'Unbekannt' : $nickname;
			
			return $nickname;
		}
		
		//----[Funktion für den Titel]----
		function titel()
		{
			# Nur prüfen, ob vorhanden, sonst "Kein Titel" #
			$titel = empty($this->news_titel) ? 'Kein Titel' : $this->news_titel;
			
			return $titel;
		}
		
		//----[Funktion für den Text]----
		function text()
		{
			# Datei einbinden #
			require_once 'functions/function.bbcode.php';
			
			# Textstellen ersetzen #
			$text	= bbcode($this->news_text);
			
			return $text;
		}
		
		//----[Funktion für DatumFormat]----
		function datum()
		{
			$datum	= date('d.m.Y @ H:i', $this->news_erstellt);
			
			return $datum;
		}
		
		//----[Funktion für das News Bild]----
		function news_file()
		{
			# Variablen festlegen #
			$n = "\n";
			$pfad	= 'loads/news/';
			$src 	= $pfad . $this->news_file;
			$alt	= file_exists($pfad . $this->news_file) ? 'Bild zu '.$this->news_titel : 'Bild wurde nicht gefunden';
			$title	= 'Bild zu dem Eintrag: '.$this->news_titel;
			$width	= 150;
			
			# Aut Typ prüfen (1 = Normal / 2 = Mit Bild) #
			if($this->news_typ == 2) {
				# Prüfen, ob Datei existiert #
				
				if (file_exists($pfad . $this->news_file)) {
					$news_file = '<img src="'.$src.'" alt="'.$alt.'" title="'.$title.'"
								 width="'.$width.'" border="0" />'.$n;
				} else {
					$news_file = '<img src="'.$src.'" alt="'.$alt.'" title="'.$title.'"
								 width="'.$width.'" border="0" />'.$n;
				}
			} else {
				$news_file = '&nbsp;';	
			}
			
			return $news_file;
		}
	 }
 ?>


Hoffe, ihr könnt mir helfen :confused:

David
 
Das Array $news_array bekommt beim ersten Durchlauf sieben Elemente und bekommt bei jedem weiteren Durchlauf ein weiteres Element.
 
Zurück