Gästebuch mit mehreren Seiten...

Morgen Stonk,

hab mir das gerade nochmal angesehen, also kann dich schonmal beruhigen es liegt nicht an dir das das auftritt :o)
Du kannst das auch so einfach nicht ändern, so leit wie mir das tut :o\
Der Grund ist folgendes, wir haben ja eigentlich immer eine Seite mehr als in der Variablen steht, sprich wenn 3 drin steht haben wir 4 (darfst die Seite 0 nicht vergessen) das ist ja auch richtig wenn du keine volle Zahl Einträge im GB hast sonst würden dir ja welche fehlen. Unangenehmerweise hast halt aber bei ner vollen Einträgezahl (10, 20, 30, 40, usw) den Effekt das er dir schon eine Seite mehr anzeigt obwohl du er es eigentlich nicht bräuchtest.

ich hab das jetzt mal so umgeändert das das eigentlich sollte :o)

PHP:
//** Variabeln Definieren ** 
$sqlhost='localhost'; 
$username='xxxxxx'; 
$passwort='xxxxxx'; 
$database='xxxx'; 
$proseite=10; 
$tabellenname=gb; 

//** Zu DB verbinden ** 
$db = mysql_connect ($sqlhost,$username,$passwort); 
mysql_select_db ($database); 
$sql = "SELECT * FROM $tabellenname"; 
$result = mysql_query($sql,$db); 

//** Daten aufbereiten ** 
$number = mysql_num_rows($result); 
/** Geänderter Teil **/
$seiten = ceil($number/$proseite);
$seiten = $seiten-1;
/** Ende geänderter Teil **/
$start=$_GET['page'] * $proseite; 
$sql="SELECT * FROM $tabellenname ORDER BY timestamp DESC LIMIT $start,$proseite"; 
$result = mysql_query($sql,$db); 
$ende = $start + $proseite; 

//** Seitenzahl für die erste Anzeige formatieren ** 
$Seitenzahl=$page+1; 

if ($ende>$number) { 
$ende = $number; 
} 

//** Daten in Array umwandeln ** 
for($i=0;$i<mysql_num_rows($result);$i++) 
{ 
$ergebnis[$i]=mysql_fetch_array($result); 
} 

//** Einträge anzeigen ** 
for($i=0;$i<count($ergebnis);$i++) 
{ 

echo " 

    <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"> 
        <tr> 
            <td bgcolor=\"#AB9A21\"><p class=\"4\">".$ergebnis[$i][name]."<a href=\"mailto:".$ergebnis[$i][mail]."\">&nbsp;<img src=\"images/design/mail.gif\" border=\"0\" alt=\"Mail Schreiben\"></a></p></td> 
            <td bgcolor=\"#AB9A21\"><p align=\"right\" class=\"4\">".date("H:i - d. M y",$ergebnis[$i][timestamp])."</p></td> 
        </tr> 
        <tr> 
            <td colspan=\"2\" bgcolor=\"#2E2E2E\"><p>".$text."</p></td> 
        </tr><br> 
    </table> 

"; 

} 

//** Beginn Tabelle für Formatierung** 
echo " 
<br> 
<table width=300 align=center> 
    <tr> 
        <td width=80 align=left> 
"; 

//** Previous ** 
$page = $_GET['page']; 

if ($page>0) { 
    $i=$page-1; 
    echo "<A HREF=\"index.php?id=gb&page=$i\">« previous</A>"; 
} else { 
    echo "« previous"; 
} 


echo " 
        </td> 
        <td width=*% align=center> 
"; 

//** Seitenzahlen Anzeigen ** 
for($i=0; $i<=$seiten; $i++) { 
    if ($i==$page) { 


    //** Seitenzahlr für Anzeige unten formatieren ** 
             $Seitenzahl_unten=$i+1; 
                                   
    //** Dann hier die Ausgabe ** 
        echo "[".$Seitenzahl_unten."] "; 
    } 
    else { 


    //** Seitenzahlr für zweite Anzeige unten formatieren ** 
        $Seitenzahl_unten=$i+1; 

    //** Dann hier die Ausgabe ** 
                 echo "[<A HREF=\"index.php?id=gb&page=$i\">".$Seitenzahl_unten."</A>] "; 
    } 




} 
//** Next ** 
if ($page<$seiten) { 

echo " 
        </td> 
        <td width=80 align=right> 
"; 


    $i=$page+1; 
    echo "<A HREF=\"index.php?id=gb&page=$i\">next »</A>"; 
} else { 

echo " 
        </td> 
        <td align=right> 
"; 


    echo "next »"; 
} 


echo " 
        </td> 
    </tr> 
</table> 
<br> 
"; 
//** Ende Tabelle und Next & Previous ** 



//** SQL Verbindung schliessen ** 

mysql_close($db);

So, teste das mal, denke es sollte :o)

Wenn de wissen willst warum es fragst nochmal
 
Zuletzt bearbeitet:
Hey Phil

Vielan Dank für deine Hilfe
Jetz funktioniert alles so wie es sollte Hab einwenig rumgetestet und keine fehler gefunden
War doch nicht soo kompliziert... oder? ;)

Besten Dank
Gruss
stonk
 
Moin Stonk,

war heute früh schon spät, da ist mir die Lösung nicht gleich eingefallen :o)
Aber die Seitenanzahl immer um eins verringern haut ja bei den vollen Zehnern hin und bei den anderen nutzen wir einfach ceil() und runden die somit auch auf, dann passt das da auch wieder wenn man 1 abzieht. War doch leichter als ich zu Anfangs dachte :o)

Freut mich wenns jetzt
 
Zurück