Nur der 1. Datensatz wird ausgegeben

weehler

Grünschnabel
Servus miteinander!

Ich habe hier einen Kalender, bei dem die Überschrift eines Termins des jeweiligen Tages als Link dargestellt wird. Beim Anklicken dieses Links sollten dann alle Daten zu diesem Termin erscheinen. Tun sie aber nicht. Es wird immer nur der erste Datensatz ausgegeben. Fehlt da noch etwas in der while-Anweisung?
Kann mir da bitte jemand weiterhelfen?
PHP:
                $query = "select * from events where tag='$i' and monat='$month' and jahr='$year' order by tag, monat, jahr ASC";
        $result = mssql_query($query);

        while ($row = mssql_fetch_object($result))
        {
          echo "<li>";
          echo "<a href=cal_popup.php?op=view&id=".$row->id.">" .$row->title. "</a></li>";
        }
        echo "</td>\n";
 
Zum Testen habe ich 4 Datensätze in der Datenbank. Diese 4 Termine werden mir im Kalender auch korrekt angezeigt. Auch wenn ich z.B. den Link vom 2.Termin berührere, wird in der Statusleiste von IE angezeigt, dass die id=2 aufgerufen wird. Beim Draufklicken erscheint jedoch der Termin 1.
 
Wenn ich dich jetzt richtig verstehe:

Dein Link übergibt der Variablen ID einen Wert z.B. 2.
Das SQL Statement da oben fragt aber nur nach tag, monat, jahr ab.
Vielleicht da der Fehler ? ;)

Oder anders. Der Code-Schnipsel da. Der gibt die Liste mit den Terminen aus richtig? Dann liegt der Fehler vielleicht in der Datei cal_popup.php. Da muss dann natürlich die Abfrage richtig sein.
 
Servus
also ich denke, dass das SQL Statement schon alles abfrägt.
Im Grunde sieht der Kalender so aus wie der hier auf der http://www.tutorials.de nur das eben ein Termin ausgegeben werden soll anstatt Geburtstage.

Auf die Idee, dass im cal_popup.php etwas nicht stimmen könnte, bin ich auch schon gekommen. Aber meines erachtens ist das was drinsteht schon richtig. Das sieht so aus:
PHP:
<?

include ('cal_config.inc.php');
$id = $_GET['id'];

$query = "select * from events";
$result = mssql_query($query);
$row = mssql_fetch_object($result);

?>

<html>
<head>
 <title><? echo stripslashes($row->title); ?></title>
</head>
<body>

<?

echo "<h3>".stripslashes($row->title)."</h3>\n";
echo "<li>Datum: ".$row->tag .". ".$maand[$row->monat]." ".$row->jahr."\n";
echo "<li>Beschreibung:<br>\n";
echo stripslashes($row->description)."<br>\n";
if ($row->contact)
{
  echo "<li>Kontakt:<br>\n";
  echo stripslashes($row->contact)."<br>\n";
}
if ($row->email) echo "<li>email: <a href=mailto:".$row->email.">".$row->email."</a>\n";
?>
</body>
</html>
 
PHP:
$query = "select * from events";

Und wo ist da der Bezug zu der im Link übergebenen ID So werden doch immer ALLE Events gesucht, sprich logischerweise zeigt er Dir auch immer den zuerst in der Ergbnismenge vorhandenen an... bie Dir halt der 1.
 
Ralph,
herzlichen Dank für diesen Tip. Ich habe die Übergabe der Variablen vergessen.

PHP:
$query = "select * from events where id=$id";
... und schon funktionierts....
 
Zurück