Nur ein Datensatz wird ausgegeben!

Neok

Erfahrenes Mitglied
Hallo!


Ich ein problem mit folgendem selbstegeschriebenen Codeschnipsel:
PHP:
  //preview news
  $sql_news = 'SELECT * FROM `news` ORDER BY `ID` DESC';
  $query_news = mysql_query($sql_news);
  
  $file = './includes/templates/news.tpl';
  $handle = fopen($file, "r");
  $content = fread($handle, filesize($file));
  fclose($handle);
  while($news_arr = mysql_fetch_array($query_news))
  {
        $content = str_replace("[newsid]", $news_arr['ID'], $content);
		$content = str_replace("[title]", $news_arr['Title'], $content);
		$content = str_replace("[category]", $news_arr['Category'], $content);
		$content = str_replace("[user]", $news_arr['User'], $content);
		$content = str_replace("[content]", $news_arr['Preview'], $content);
        $content = str_replace("[links]", $news_arr['Links'], $content);
		$content = str_replace("[date]", $news_arr['Date'], $content);
        $content = magic_link($content); //macht Links klickbar
       return $content;
  }

Ich hab jetzt 3 Datensätze in der DB liegen, angezeigt wird aber immer nur der neueste, also der zuletzt "gefetchte".
Warum werden die anderen beiden nicht angezeigt?

Vielen Dank
neok
 
Das Problem ist, dass die Schleife nur einmal durchlaufen wird und die Funktion danach eine Rückgabe macht. Sammle also einfach alle Daten in einer Variable und gib dessen Wert nach der Schleife zurück.
 
Das war der entscheidene Denkanstoß! :)

Danke!

@daddz:
echo brauch ich hier nicht, weil der Schnipsel Teil einer Funktion ist, deshalb return
Falls es noch jemanden interessiert der Schnipsel:
PHP:
//preview news
  $sql_news = 'SELECT * FROM `news` ORDER BY `ID` DESC';
  $query_news = mysql_query($sql_news);
  
  $file = './includes/templates/news.tpl';
  $handle = fopen($file, "r");
  $content_tpl = fread($handle, filesize($file));
  fclose($handle);
  while($news_arr = mysql_fetch_array($query_news))
  {
        $content = $content_tpl;
        $content = str_replace("[newsid]", $news_arr['ID'], $content);
		$content = str_replace("[title]", $news_arr['Title'], $content);
		$content = str_replace("[category]", $news_arr['Category'], $content);
		$content = str_replace("[user]", $news_arr['User'], $content);
		$content = str_replace("[content]", $news_arr['Preview'], $content);
        $content = str_replace("[links]", $news_arr['Links'], $content);
		$content = str_replace("[date]", $news_arr['Date'], $content);
        $content = magic_link($content); //macht Links klickbar
        $full_content .= $content;
  }

return $full_content;

Vielen Dank nochmal!:)
 
Zurück