Blättern in Gästebuch will nicht funktionieren.
Taxidriver05
- php
0 dedlfix0 Taxidriver050 ChrisB0 Taxidriver050 ChrisB0 Taxidriver052 ChrisB
Hallo liebe User,
ich habe folgendes Problem.
Ich habe ein PHP-Skript für ein Gästebuch.
Dieses funktionierte bis vor kurzem auch problemlos.
Von einem Tag auf den anderen wurden keine Einträge mehr angezeigt.
Das PRoblem mit dem Anzeigen der letzten Einträge habe ich gelöst bekommen.
Jedoch funktioniert das Blättern noch nicht wirklich.
Hier der Code:
<tr>
<td>
<?php
error_reporting(E_ALL);
$user = "Gast";
if(!isset($_GET['result']))
$result = mysql_query("SELECT * FROM street_gb");
$menge = mysql_num_rows($result);
$anzahl_ausgabe = 10;
if(!isset($_GET['start']))
if (!isset($_GET['n']))
{
$start = 0;
$n = 0;
}
$zeigen = floor($menge / $anzahl_ausgabe);
if ($menge != "1")
{
$result = mysql_query("SELECT * FROM street_gb ORDER BY gb_id DESC LIMIT $start,$anzahl_ausgabe");
while($row = mysql_fetch_row($result))
{
?>
<table width="100%" height="100%" class="<?php if(($i++)%2) { echo "odd"; } else { echo "even"; } ?>">
<!--DWLayoutTable-->
<tr class="gb">
<td width="20"></td>
<td width="20%" valign="top" class="gbhead"><?php echo $row[1]; ?></td>
<td valign="top" class="gbhead"><?php echo $row[6]; ?></td>
</tr>
<tr>
<td width="20"></td>
<td valign="top" class="gbinfo"> eingetragen am <?php echo date("j.m.Y",$row[8]); ?> </td>
<td valign="top" class="gb"><div align="justify"> <?php echo nl2br($row[7]); ?></div></td>
</tr>
<tr align="right" class="gb">
<td width="20"></td>
<td height="20" class="gb"></td>
<td align="left" valign="top" class="gb">
<?php
if ($row[2]=="0")
{
echo "<img src='images/blank.gif' width='20' border='0'>";
}
else
{
echo "<a href='start.php?section=contact&email_adresse=$row[2]'><img src='images/email.gif' border='0' alt='$row[1] eine Email schreiben'></a>";
};
if ($row[3]=="0")
{
echo "<img src='images/blank.gif' width='20' border='0'>";
}
else
{
echo "<a href='http://$row[3]' target='_blank' width='20'><img src='images/hpage.gif' border='0' alt='$row[3]'></a>";
};
if($user != "Gast")
{
echo "<a href='start.php?section=editgb&id=$row[0]'><img src='images/edit.gif' border='0' alt='Eintrag editieren'></a>";
echo "<a href='start.php?section=deletegb&id=$row[0]'><img src='images/delete.gif' border='0' alt='Eintrag löschen'></a>";
}
echo "<a href='templates/printable.php?select=gb&id=$row[0]' target='_blank' onclick='return popup(this.href);'><img src='images/print.gif' border='0' alt='Eintrag drucken'></a>";
$count_comments = mysql_num_rows(mysql_query("SELECT * FROM street_gb_comments WHERE comment_gb_id = ".$row[0].""));
if($count_comments > 0) {
?><img src="images/blank.gif" width="50" height="0">
<a href="start.php?section=sign_comments&gbid=<?php echo $row[0]; ?>" class="gb">Kommentar
schreiben </a> <img src="images/blank.gif" width="50" height="0">
<?php if($count_comments == 1) { ?>
<a href="start.php?section=view_comments&gbid=<?php echo $row[0]; ?>" class="gb"><?php echo $count_comments; ?> Kommentar</a>
<?php
} else {
?>
<a href="start.php?section=view_comments&gbid=<?php echo $row[0]; ?>" class="gb"><?php echo $count_comments; ?> Kommentare</a>
<?php
}
}
else {
?><img src="images/blank.gif" width="50" height="0">
<a href="start.php?section=sign_comments&gbid=<?php echo $row[0]; ?>" class="gb">Kommentar
schreiben</a>
<?php
}
?>
</td>
</tr>
</table>
<?php } ?>
<table width="100%" class="gb_nav">
<tr>
<td height="50" class="gb_nav"></td>
</tr>
<tr>
<td width="50%" height="20" align="left" class="even"><p style="margin-left: 20px;">
Einträge: (<?php echo "<strong>".$menge."</strong>"; ?>)
<?php
if($start > 0)
{
$zurueck = $start - $anzahl_ausgabe;
echo " <a href=\"start.php?section=viewgb&start=$zurueck\" class=\"site_nav\"><<< Zurück</a>";
}
for($i = 1; $i <= $zeigen; $i++)
{
$n += $anzahl_ausgabe;
}
$weiter = $start + $anzahl_ausgabe;
if($menge > $weiter)
{
echo " <a href=\"start.php?section=viewgb&start=$weiter\" class=\"site_nav\">Weiter >>></a>";
}
?></p>
</td>
</tr>
</table>
<?php
}
else {
echo "Es sind keine Einträge vorhanden.";
};
?>
</td>
</tr>
</table>
Da der Code nicht von mir geschrieben wurde, möchte ich mich im Voraus für eventuell unsauberen Code entschuldigen.
Zwar erhalte ich beim erstmaligen ausführen des Skriptes die richtigen Datensätze.
Blättere ich jedoch auf die nächste Seite, kommt folgende Warnung:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/.../guestbook/viewgb.php on line 37
Die in dem Skript verlinkten Skripte arbeiten hingegen problemlos.
Für Hinweise und Vorschläge danke ich schonmal im Voraus!
echo $begrüßung;
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/.../guestbook/viewgb.php on line 37
Das ist ein wohlbekannter Folgefehler, zu dem du garantiert als Antwort hättest finden können, dass eine Fehlerbehandlung in das Script einbauen sollst und dir den eigentlichen Fehler mit der Funktion mysql_error() holen kannst. Viele der mysql_*-Funktionen geben über ihren Rückgabewert auch einen Fehlerfall bekannt. Schön-Wetter-Scripte, so wie deins eins ist, ignorieren den und machen einfach mit der nächsten Funktion weiter, woraufhin sich PHP beschwert, dass der Fehlerstatus-Rückgabewert kein gültiges Argument für die nachfolgende Funktion ist.
Also, bau Fehlerprüfroutinen ein und wenn die einen Fehler signalisieren, lass dir den dazugehörigen Meldungstext anzeigen.
echo "$verabschiedung $name";
echo $begrüßung;
»» Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/.../guestbook/viewgb.php on line 37
Das ist ein wohlbekannter Folgefehler, zu dem du garantiert als Antwort hättest finden können, dass eine Fehlerbehandlung in das Script einbauen sollst und dir den eigentlichen Fehler mit der Funktion mysql_error() holen kannst. Viele der mysql_*-Funktionen geben über ihren Rückgabewert auch einen Fehlerfall bekannt. Schön-Wetter-Scripte, so wie deins eins ist, ignorieren den und machen einfach mit der nächsten Funktion weiter, woraufhin sich PHP beschwert, dass der Fehlerstatus-Rückgabewert kein gültiges Argument für die nachfolgende Funktion ist.
Also, bau Fehlerprüfroutinen ein und wenn die einen Fehler signalisieren, lass dir den dazugehörigen Meldungstext anzeigen.
echo "$verabschiedung $name";
Ich habe diese Fehlermeldung rausgenommen, damit der User diesen Fehler nicht zu sehen bekommt...
Nehm ich die meldung rein, kommt das:
Error:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '1236454214,10' at line 1
Hi,
bitte zitiere sinnvoll, und nicht einfach alles!
Ich habe diese Fehlermeldung rausgenommen, damit der User diesen Fehler nicht zu sehen bekommt...
Das ist, waehrend du noch bei der Entwicklung bist, unsinnig.
Sorge dafuer, dass du Alles an Meldungen und Informationen bekommen kannst, was geht - also u.a. auch error_reporting auf E_ALL und display_errors auf on stellen! (Stichworte, bitte danach *suchen* wenn nicht bekannt!)
*Später*, wenn das ganze fertig ist - und vorher hat es ja eigentlich auch gar kein Nutzer überhaupt erst zu Gesicht zu bekommen - werden dann solche Meldungen nicht mehr ausgegeben, sondern irgendwo geloggt.
Error:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '1236454214,10' at line 1
Dann mache auch eine Kontrollausgabe der Query, die du mit PHP zusammengesetzt hast, bevor du sie an die Datenbank übergibst.
MfG ChrisB
Hi,
bitte zitiere sinnvoll, und nicht einfach alles!
»» Ich habe diese Fehlermeldung rausgenommen, damit der User diesen Fehler nicht zu sehen bekommt...
Das ist, waehrend du noch bei der Entwicklung bist, unsinnig.
Sorge dafuer, dass du Alles an Meldungen und Informationen bekommen kannst, was geht - also u.a. auch error_reporting auf E_ALL und display_errors auf on stellen! (Stichworte, bitte danach *suchen* wenn nicht bekannt!)*Später*, wenn das ganze fertig ist - und vorher hat es ja eigentlich auch gar kein Nutzer überhaupt erst zu Gesicht zu bekommen - werden dann solche Meldungen nicht mehr ausgegeben, sondern irgendwo geloggt.
»» Error:
»» You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '1236454214,10' at line 1Dann mache auch eine Kontrollausgabe der Query, die du mit PHP zusammengesetzt hast, bevor du sie an die Datenbank übergibst.
MfG ChrisB
Das PRoblem ist, dass das Skript bis vor einigen Tagen noch problemlos gearbeitet hat.
Die Fehlfunktionen kamen von einem Tag auf den anderen.
Ob dies nun damit zu tun haben kann, dass mein Hoster an den MySQL-Servern gearbeitet hat, weiß ich nicht.
Jedoch kann ich mir dies nicht vorstellen, da das Problem bereits wenige Tage zuvor eingetreten ist.
Hi,
sag mal, was bitte verstehst du an dem Hinweis, dass du bitte *sinnvoll* zitieren sollst, und nicht einfach *alles*, denn nicht?
Das PRoblem ist, dass das Skript bis vor einigen Tagen noch problemlos gearbeitet hat.
Die Fehlfunktionen kamen von einem Tag auf den anderen.
Fein, dass du das für so interessant hältst, dass du es jetzt noch mal wiederholst - aber glaubst du wirklich, dadurch kommen wir der *Lösung* des Problems auch nur irgendwie näher? [1]
Ob dies nun damit zu tun haben kann, dass mein Hoster an den MySQL-Servern gearbeitet hat, weiß ich nicht.
Jedoch kann ich mir dies nicht vorstellen, da das Problem bereits wenige Tage zuvor eingetreten ist.
Ist mir erst mal ziemlich egal, was du dir vorstellen kannst und was nicht.
Was du als nächsten Schritt bei der Fehlersuche machen sollst, wurde dir mitgeteilt - also *mach's* bitte auch.
[1] Auch wenn die Vermutung vielleicht in die Richtung gehen könnte, es habe mit einer Änderung der Konfiguration bzgl. register_globals zu tun.
MfG ChrisB
Zunächst möchte ich mich für die ellenlangen Quotes entschuldigne...
Was mich verwirrt, ist die Tatsache, dass das Skript seinen Dienst von einen Tag auf den Anderen verweigert.
Die Fehler habe ich ja bereits gepostet.
Ich bin der Lösung insofern näher gekommen, dass ich die ersten 10 angeforderten Datensätze erhalt.
Jedoch werden bei folgenden Durchläufen keine Datensätze zurückgegeben.
*Seufz*
Die Fehler habe ich ja bereits gepostet.
Ich bin der Lösung insofern näher gekommen, dass ich die ersten 10 angeforderten Datensätze erhalt.
Jedoch werden bei folgenden Durchläufen keine Datensätze zurückgegeben.
Auch das ist doch alles nichts neues - das sagtest du in deinem allerersten Posting bereits.
Ich habe weniger Lust als du, mich ständig zu wiederholen - trotzdem sage ich's dir jetzt noch ein einziges Mal:
Welcher Schritt jetzt als nächster bei einer logisch und methodisch vorgehenden Fehlersuche durchzuführen wäre, wurde dir bereits mitgeteilt.
Also MACH ES BITTE ENDLICH - und hör' auf, uns die immer gleichen Fakten noch mal und noch mal zu präsentieren, damit kommen wir KEIN BISSCHEN WEITER.
MfG ChrisB