Webstatt.org - Community seit 2006 - 2012 (2024?)

Blätterfunktion und Probleme

user-137
09.06.2006 15:50

Hallo,

habe versucht eine Blätterfunktion die ich gefunden habe anzupassen, nur leider klappt das nicht:

<?php
if ($_GET['page'] == 'new' OR $_GET['page'] == 'new'zwinkern {
$page_titel = 'Gästebuch - Neuer Eintrag';
echo "Neure Eintarg hier!";
}
else {
/*
Aufteilung von Einträgen auf Seiten
- hier mit MYSQL
- Beispiel einer Zitat-Anzeige
- Anzupassen sind die Config-Werte sowie die URL in Zeile 56, 63 und 70
*/
// Berechnung der Seitenanzahl
list($gesamt) = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM guestbook"zwinkern);
$num_sites = ceil($gesamt/$eintraege_pro_seite);
/*
Zunächst wird die Anzahl der gesamt vorhandenen Einträge ermittelt,
diese Zahl wird durch die gewünschte Anzahl der Einträge geteilt und
dann aufgerundet.
Beispiel:
Es befinden sich 23 Einträge in der Datenbank, 10 sollen je Seite angezeigt
werden.
23 durch 10 ergibt 2,3
2,3 wird aufgerundet und so erhält man 3 Seiten
*/

// korrigieren der aktuellen Seite
if(empty($_GET['site'])) {
$site = 1;
} elseif($_GET['site'] <= 0 || $_GET['site'] > $num_sites) {
$site = 1;
} else {
$site = $_GET['site'];
}
/*
Die aktuell angezeigte Seite, gespeichert in $site und vorher übergeben
mit $_GET['site'] wird hier korrigiert. Sollte $_GET['site'] nicht gesetzt
sein oder sollte $_GET['site'] außerhalb des gültigen Bereichs liegen, wird
$site auf 1 gesetzt, anderenfalls bekommt $site den gültigen Wert aus
$_GET['site'].
*/

// Linkkette
$links = array();
// "<<"-Link (eine Seite zurück)
if($site != 1) {
// if überprüft, ob wir uns nicht auf der ersten Seite befinden
$prev = $site-1;
$links[] = '<a href="seitenaufteilung.php?site='.$prev.'">&laquo;</a>';
}
for($i=1;$i<=$num_sites;$i++) {
if($i == $site) {
// aktuelle Seite, ein Link ist nicht erforderlich
$links[] = $i;
} else {
$links[] = '<a href="seitenaufteilung.php?site='.$i.'">'.$i.'</a>';
}
}
// ">>"-link (ein Seite weiter)
if($site != $num_sites) {
// if überprüft, ob wir uns nicht auf der letzten Seite befinden
$next = $site+1;
$links[] = '<a href="seitenaufteilung.php?site='.$next.'">&raquo;</a>';
}
// Zusammenfügen der einzelnen Links zu einem String
$link_string = implode(" | ", $links);

// Ausgabe der ausgewählten Seite
/*
mysql bringt mit "LIMIT start,anzahl" genau die richtige "Funktion" mit, um
unsere einträge entsprechend auszugeben
Wir müssen jetzt lediglich den Wert errechnen, bei dem unsere Ausgabe anfangen
soll...das sollte bei Seite 2 (10 Einträge pro Seite) der 11. Eintrag sein
*/
$start = ($site-1)*$eintraege_pro_seite;

// mysql-Query und Ausgabe
$result = mysql_query("SELECT (*) FROM guestbook LIMIT ".$start.",".$eintraege_pro_seite);
while($row = mysql_fetch_array($result)) {
?>
<table align="center" width="682" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="oben_links"></td>
<td id="oben_mitte"></td>
<td id="oben_rechts"></td>
</tr>
<tr>
<td id="mitte_links"></td>
<td id="mitte_mitte"><table width="100%" border="0">
<tr>
<td width="160">Name:</td>
<td><? echo (badfilter(htmlentities($row->Name))); ?></td>
</tr>
<tr>
<td>E-Mail:</td>
<td><? echo cryptmail(badfilter(htmlentities($row->Email)));?></td>
</tr>
<tr>
<td>Homepage:</td>
<td><a target="_blank" href="klick.php?typ=guestbook&id=<? echo $row->id; ?>&tab=guestbook">www.<? echo (badfilter(url(htmlentities($row->link))));?></a>&nbsp;(<?php echo $row->klick; ?> Klicks)</td>
</tr>
<tr>
<td>Bewertung Internetiv's:</td>
<td><? echo htmlentities($row->Note);?></td>
</tr>
<tr>
<td><hr class="hr"></td>
<td><hr class="hr"></td>
</tr>
<tr>
<td>Eintrag:</td>
<td><? echo nl2br(smilies(badfilter(htmlentities($row->Text))));?>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>

<tr>
<td><hr class="hr"></td>
<td><hr class="hr"></td>
</tr>
<td></td>
<td width="100%" class="thumbnail"><strong>Kommentar vom Admin:</strong><br><? echo $anzeigecomm ?></td>

</tr>
</table></td>
<td id="mitte_rechts"></td>
</tr>
<tr>
<td id="unten_links"></td>
<td id="unten_mitte"></td>
<td id="unten_rechts"></td>
</tr>
</table>
<? }
} ?>


Fehler:

Warning: Division by zero in C:\FoxServ\www\Re-Design\page\guestbook.php on line 15

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\FoxServ\www\Re-Design\page\guestbook.php on line 79


Mfg. BNS

Avatar user-255
09.06.2006 16:52

Nanana.. da hat wohl jemand $eintraege_pro_seite nicht definiert!

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-137
09.06.2006 18:54

Ok aber jetzt gibt es noch nen fehler:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\FoxServ\www\Re-Design\page\guestbook.php on line 80

Avatar user-255
09.06.2006 22:54

Wie oft denn noch... "or die(mysql_error());" :tired:

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-137
10.06.2006 10:27

Ah!

Ja das script ist ja nicht von mir deshalb hab ich's vergessen:

You have an error in your SQL syntax near '*) FROM guestbook LIMIT 0,10' at line 1


Hier war der Fehler:

$result = mysql_query("SELECT (*) FROM guestbook LIMIT ".$start.",".$eintraege_pro_seite);
while($row = mysql_fetch_array($result)) {
?>


Hab das "(*) in Klammern gesetzt, muss aber ja "*" sein.

Mfg. BNS

EDIT:


Noch nen Problem es wird zwar die richtige anzal der Einträge mit while ausgeführt aber nichts angezeigt, also der "$row->" wird nicht ausgegeben!

Avatar user-182
10.06.2006 19:04

du hast ja auch nen array und kein objekt..

Seid ihr auch schon wix'r? xD
Avatar user-118
10.06.2006 19:13

Original von user-182
du hast ja auch nen array und kein objekt..


wie franky schon sagt musst du , da du ein Array hast, aus

Zeile 79

while($row = mysql_fetch_array($result)) {


das

while($row = mysql_fetch_object($result)) {


machen.

mfg Alex

Ich brauche keine Signatur
user-137
10.06.2006 19:32

ah, immer diese Arrays, trotzdem thx!