Zur Navigation

Problem mit MySQL

1 Don

Hallo,

nachdem ich jetzt schon eine Weile versucht habe ein Script zu schreiben, dass die 5 letzten Beiträge eines Forums ausgibt, versuch ich es mal hier.

Hier also das Script:
<?php
$user = "...";
$pass = "...";
$db = "...";
$link = mysql_connect("localhost", $user, $pass);
if ( ! $link ) {
die ( "Verbindung zu MySQL nicht möglich: " .mysql_error()  );
}
@mysql_select_db( $db, $link )
or die( "Konnte $db nicht öffnen: ".mysql_error()  );

$enum=1;

$query = "SELECT a. * , b.id as category, b.published as published"
. " FROM jos_sb_messages AS a, "
. " jos_sb_categories AS b WHERE a.catid = b.id"
. " AND a.hold = 0 AND b.published = 1"
. " ORDER  BY a.time DESC "
. " LIMIT 5";
$result = mysql_query($query);
while($row = mysql_fetch_row($result))
{
   $content ="";	
   $thread=$row->subject;
   $content.=$enum.": ".stripslashes($thread);
   $content.=" von ".$row->name;
   $content.="<br/>";
   $enum++;
   echo $content;
}

?>

Das Selectstatement habe ich in PHPMYAdmin getestet und es liefert die gewünschten Daten/Spaltennamen.

Rufe ich das Script auf erhalte ich lediglich die Ausgabe:
1: von
usw.

Es fehlen halt die Daten aus der Datenbank. Weiß jemand was in dem Script falsch ist?

11.11.2007 02:07 | geändert: 11.11.2007 02:07

2 Rudy

$row ist ein nummerierter Array (mysql_fetch_row), kein Objekt. Fang das Skript mal mit error_reporting(E_ALL); an, $thread = $row->subject muss einen Fehler geben.

Du kannst die Daten so fetchen:
while(list($subject, $content, $category, $published) = mysql_fetch_row($result)) {
echo $subject...
}

Dazu solltest Du aber im Select-Statement die Spalten explizit angeben, um Fehler zu vermeiden, a.* solltest Du also eliminieren und die richtigen Spaltennamen verwenden.

11.11.2007 11:27

3 Don

Läuft jetzt ohne Probleme.
Vielen Dank.

11.11.2007 15:03

Beitrag schreiben (als Gast)





[BBCode-Hilfe]