• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Seitennavigation fürs Gästebuch

Status
Für weitere Antworten geschlossen.
Alles was mir bisher klar ist ist, wo ich diese eine Zeile (LIMIT start, anzahl";) einfügen muss, der rest leider noch nicht so ganz...

Das Feld "id" existiert bei mir.
 
Werbung:
Dann mach eine while() Schleife, inder du das Limit benutzt. Am besten nach der ID, die du hast.

Ist die ID per auto increment konfiguriert?


MfG, matibaski
 
*amkopfkratz*

also die ID leg ich selber immer fest, wenn ich einen neuen Eintrag in die Datenbank reinschreibe...
 
Werbung:
LoL...
Also ich würde dir einen "auto increment primary key" anraten.
Da wird immer eine ID angegeben, die immer eins höher wird, wenn ein Eintrag kommt.
Die ID selbst einzuschreiben würde mich stressen... *amkopfkratz*

Für Infos: http://tut.php-q.net/


MfG, matibaski
 
Ich trage den ganzen Eintrag selbst in die Datenbank ein, dann machts ja auch nicht so viel mehr Arbeit, ne ID dazuzuschreiben...
 
Hallo,

Alles was mir bisher klar ist ist, wo ich diese eine Zeile (LIMIT start, anzahl";) einfügen muss, der rest leider noch nicht so ganz...

Das Feld "id" existiert bei mir.

Mit dem folgenden Code bekommst du die über ?page=xx angegebe Seite. Den Rest von deinem Code kannste so lassen, da sich an der Ausgabe der Einträge nichts ändert.
PHP:
$anzahl = 10;
$start = $_GET ['page'] * $anzahl;
$sql = "SELECT
                Name,
                Datum,
                Email,
                Homepage,
                Inhalt
            FROM
                gaestebuch
            ORDER BY
                Datum DESC
            LIMIT $start, $anzahl";
Mit dem folgenden SQL-Befehl kannst du die Anzahl der Einträge bestimmen:
PHP:
$sql = "SELECT COUNT(id) AS counter FROM gaestebuch";
list ($counter) = mysql_fetch_array (mysql_query ($sql));
Daraus kannst du jetzt die Anzahl der Seiten bestimmen:
PHP:
$page_count = $counter / $anzahl;
if ($page_count % $anzahl)
   $page_count++;
Die if-Abfrage dient dazu zu bestimmen, ob die letzte Seite weniger als $anzahl Einträge hat. Dann muss sie noch hinzugefügt werden, weil / abrundet.

Mit der Seitenanzahl kannst du die Links für die Navigation generieren.
PHP:
for ($i = 0; $i < $page_count; $i++) {
   echo '<a href="http://www.maxif.de/start.php?m=7&amp;page=' . $i . '">Seite ' . ($i + 1) . '</a><br />';
}
N43
 
Werbung:
Daraus kannst du jetzt die Anzahl der Seiten bestimmen:
PHP:
$page_count = $counter / $anzahl;
if ($page_count % $anzahl)
   $page_count++;
Die if-Abfrage dient dazu zu bestimmen, ob die letzte Seite weniger als $anzahl Einträge hat. Dann muss sie noch hinzugefügt werden, weil / abrundet.

Dann benutz doch ceil() das rundet auch bei 0,1 auf die nächste zahl auf

PHP:
$page_count = ceil($counter / $anzahl);
Gruß Jan
 
Hallo,



Mit dem folgenden Code bekommst du die über ?page=xx angegebe Seite. Den Rest von deinem Code kannste so lassen, da sich an der Ausgabe der Einträge nichts ändert.
PHP:
$anzahl = 10;
$start = $_GET ['page'] * $anzahl;
$sql = "SELECT
                Name,
                Datum,
                Email,
                Homepage,
                Inhalt
            FROM
                gaestebuch
            ORDER BY
                Datum DESC
            LIMIT $start, $anzahl";
Mit dem folgenden SQL-Befehl kannst du die Anzahl der Einträge bestimmen:
PHP:
$sql = "SELECT COUNT(id) AS counter FROM gaestebuch";
list ($counter) = mysql_fetch_array (mysql_query ($sql));
Daraus kannst du jetzt die Anzahl der Seiten bestimmen:
PHP:
$page_count = $counter / $anzahl;
if ($page_count % $anzahl)
   $page_count++;
Die if-Abfrage dient dazu zu bestimmen, ob die letzte Seite weniger als $anzahl Einträge hat. Dann muss sie noch hinzugefügt werden, weil / abrundet.

Mit der Seitenanzahl kannst du die Links für die Navigation generieren.
PHP:
for ($i = 0; $i < $page_count; $i++) {
   echo '<a href="http://www.maxif.de/start.php?m=7&amp;page=' . $i . '">Seite ' . ($i + 1) . '</a><br />';
}
N43

vielen Dank für deine Mühen, das werd ich nachher gleich mal ausprobieren.

EDIT:
Bestens, es klappt, vielen Dank.
Nur drei Fragen bleiben noch:
1. Warum wird bereits Seite 3 angezeigt, obwohl diese noch nicht existiert?
2. Warum funktioniert der Zähler nicht mehr, der die geasmte Eintragszahl ausgibt nicht mehr? Er zeigt nur noch die Zahl an, die sich aktuell auf der jeweiligen Seite befindet.
3. Was muss ich noch änder, damit Seite 1 nicht page=0 heißt sondern page=1?
 
Zuletzt bearbeitet:
vielen Dank für deine Mühen, das werd ich nachher gleich mal ausprobieren.
gern geschehen :-D

1. Warum wird bereits Seite 3 angezeigt, obwohl diese noch nicht existiert?
Musst den Code von pennywise nehmen, mit dem sollte es gehen. Ich bin einfach zu sehr C gewöhnt, da wird bei ganzen Zahlen auch 'ne Ganzzahldivision durchgeführt.

2. Warum funktioniert der Zähler nicht mehr, der die geasmte Eintragszahl ausgibt nicht mehr? Er zeigt nur noch die Zahl an, die sich aktuell auf der jeweiligen Seite befindet.
Dafür musst du mit der Variable $counter arbeiten, mysql_num_rows liefert mit dem Code nur noch maximal 10 Einträge.

3. Was muss ich noch änder, damit Seite 1 nicht page=0 heißt sondern page=1?
Du müsstest am Anfang vom Script von $_GET['page'] eins abziehen und über isset ($_GET_['page']) feststellen, ob der Wert übergeben wurde und falls nicht den Startwert 1 zuweisen.


N43
 
Werbung:
Also die Seitenanzahl passt so jetzt.

Den Zähler, der die gesamtzahl anzeigt lass ich glaub ich raus, stattdessen schreib ich zu jedem Eintrag die Nummer dazu, ist glaub ich besser.

Vielen Dank.
 
Dynamische Seitennavigation

Das Problem wird im PHP Kochbuch behandelt:

selfphp.de -> Kochbuch -> Webseitenlayout -> Dynamische Seitennavigation 1 - n

Ist dann so wie bei Google...
 
Das Problem wird im PHP Kochbuch behandelt:

selfphp.de -> Kochbuch -> Webseitenlayout -> Dynamische Seitennavigation 1 - n

Ist dann so wie bei Google...

Also ich wollts ja nicht so wie bei Google, sondern so wie ich sie jetzt habe, im dafür vorgesehenen Platz im Untermenü...
 
Werbung:
********
Nur drei Fragen bleiben noch:
1. Warum wird bereits Seite 3 angezeigt, obwohl diese noch nicht existiert?
2. Warum funktioniert der Zähler nicht mehr, der die geasmte Eintragszahl ausgibt nicht mehr? Er zeigt nur noch die Zahl an, die sich aktuell auf der jeweiligen Seite befindet.
3. Was muss ich noch änder, damit Seite 1 nicht page=0 heißt sondern page=1?
********
1. müsste ich den Quellcode in einem Stück haben
2. Er sortiert die EInträge ja nicht sondern er nimmt nur diese parr Einträge raus also die anderen EInträge auf den anderen Seiten werden gar nicht erst angesprochen. Mach am besten dafür einen neuen Zähler und da aber ohne LIMIT und ORDER BY ?? DESC/ASC ist da auch unwichtig.

3.
if(!isset($page) OR $page<1) $page = "1";
// wenn nicht vorhanden oder kleiner als 1 dann isses 1 =)


edit: sry hatte ausversehen so ne dumme Anzeige der themen eingestellt und sah nicht, dass die Fragen schon beantwortet wurden
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben