raven16
Lieutenant
- Registriert
- Nov. 2008
- Beiträge
- 580
Hi hab nen Tipp aus nem anderen Beitrag bekommen, ein Tutorial anzuschauen, um in meinem Gästebuch eine Blätterfunktion einzubauen. Jedoch habe ich nach langem rumprobieren bestimmt noch Fehler eingebaut und deshalb bekomme ich das Gästebuch nicht ans Laufen.
Hier mein Quellcode:
Der jetzige Fehler, der mir angezeigt wird ist der, der nach der While-Schleife bei der Ausgabe verursacht wird.
Nun noch der Link zu meiner Seite.
Hoffe das Ihr mir weiterhelfen könnt.
Wie kann ich testen ob die Schleife arbeitet? Diese Schleife zeigt keine Wirkung. Einen mysql_error wird nicht erzeugt, also scheint die Abfrage ja in Ordnung zu sein.
Hier mein Quellcode:
PHP:
<?php
//Connect zur _GETbank
define ( 'MYSQL_HOST', 'localhost' );
define ( 'MYSQL_BENUTZER', '*zensiert*' );
define ( 'MYSQL_KENNWORT', '*zensiert' );
define ( 'MYSQL__DATENBANK', '*zensiert*' );
$db_con = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if ( ! $db_con )
{
// das Problem ausgeben mit: mysql_error()
die('Verbindung zur Datenbank fehlgeschlagen. Bitte später probieren. ');
}
$db_sel = mysql_select_db( MYSQL__DATENBANK )
or die("Auswahl der Datenbank fehlgeschlagen.");
$seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
{
$seite = 1;
}
?>
<table class="gaestebuchanzeige">
<tr class="top">
<td>
<?php
// Anzeige der Anzahl der Einträge
$query_all = mysql_query("SELECT * FROM gaestebuch ORDER BY ID");
$gb_anzahl = mysql_num_rows($query_all);
echo "<p>Anzahl der Gästebuch-Einträge: $gb_anzahl </p>";
//Einträge pro Seite: Hier 10 pro Seite
$eintraege_pro_seite = 10;
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
// ausführen des mysql-Befehls
$sql_query = "SELECT * FROM gaestebuch WHERE Aktiv = '1'
ORDER BY ID DESC LIMIT $start, $eintraege_pro_seite";
$ergebnis = mysql_query( $sql_query );
if ( ! $ergebnis )
{
die('Ungültige Abfrage: ' . mysql_error());
}
while($row = mysql_fetch_object($ergebnis))
{
$id = $row->ID;
$inhalt = $row->Text;
$inhalt = htmlentities($inhalt);
$inhalt = nl2br($inhalt);
$datum = date("d.m.Y H:i", $row->Datum);
//Der Besucher hat keine E-Mail Adresse angegeben:
if($row->Email == "")
{
$name = "<b>$row->Name</b>";
}
else
{
//Der User hat eine Email Adresse angegeben:
$name = "<a href=\"mailto:$row->Email\">$row->Name</a>";
}
// Aushabe der _GET
echo "<div class='boxtitlesub'><label class='x-small'>
# $id von $name am: $datum
</label></div>";
echo "<label class='small'>$inhalt</label>";
echo "<br /> <br />";
}
if (!$row)
{
die ("Zeilenauswahl fehlgeschlagen.".mysql_error());
}
mysql_free_result( $ergebnis );
//Jetzt kommt das "Inhaltsverzeichnis",
//sprich dort steht jetzt: Seite: 1 2 3 4 5
//Wieviele Einträge gibt es überhaupt
//Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
//also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt
//Sonst funktioniert die Blätterfunktion nicht richtig,
//und hier kann nur 1 Feld abgefragt werden, also id
$result = mysql_query("SELECT ID FROM gaestebuch WHERE aktiv = '1'");
$menge = mysql_num_rows($result);
//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;
//Ausgabe der Seitenlinks:
echo "<div align=\"center\">";
echo "<b>Seite:</b> ";
//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
{
$b = $a + 1;
//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
if($seite == $b)
{
echo " <b>$b</b> ";
}
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
else
{
echo " <a href=\"?seite=$b\">$b</a> ";
}
}
echo "</div>";
?>
</td>
</tr>
</table>
Nun noch der Link zu meiner Seite.
Hoffe das Ihr mir weiterhelfen könnt.
Wie kann ich testen ob die Schleife arbeitet? Diese Schleife zeigt keine Wirkung. Einen mysql_error wird nicht erzeugt, also scheint die Abfrage ja in Ordnung zu sein.
Zuletzt bearbeitet: