Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Gästebuch mit mehreren Seiten (https://www.delphipraxis.net/52844-%5Bphp%5D-gaestebuch-mit-mehreren-seiten.html)

Dagon 5. Sep 2005 12:19


[PHP] Gästebuch mit mehreren Seiten
 
Hey Leute

Ich beschäftige mich seit Kurzem mit PHP und jetzt will ich ein kleines (sehr einfaches) Gästebuch programmieren. Bis jetzt hatte ich auch keine Probleme, aber nun will ich, dass immer nur eine bestimmte Maximalanzahl an Beiträgen pro Seite angezeigt wird (also z. B. 10 Beiträge / Seite). Die restlichen Beiträge sollen erreichbar sein durch Links auf die entsprechenden Seiten -> Zurück 1, 2, 3 Weiter

Wie aber realisiere ich, dass immer nur die 10 neusten Beiträge angezeigt werden und der Rest automatisch "verpackt" wird? Aufrufen tue ich das Gästebuch über index.php?site=guestbook

Ich hoffe jemand kann mir auf einfache Weise weiterhelfen :)

Meflin 5. Sep 2005 12:35

Re: [PHP] Gästebuch mit mehreren Seiten
 
Hi!

Der Schlüssel des ganzen ist der SQL Terminus LIMIT mit dem du die Abfrage der Datenbank eingrenzen kannst, beispielsweise mit LIMIT 10,20 nur die Einträge 10-20 bekommst (oder so ähnlich, hab das schon lange nicht mehr benutzt :gruebel: )

Aber per Google findest du ne Menge dazu, z.B. http://www.phpwelt.de/tutorials/tutorials.php?tid=88


Dagon 5. Sep 2005 12:45

Re: [PHP] Gästebuch mit mehreren Seiten
 
Ui ich vergass zu erwähnen, dass ich die Datensätze aus einer Textdatei auslese (ich schreibe das Gästebuch wirklich nur als Übeungszweck) :oops:

NicNacMan 5. Sep 2005 13:50

Re: [PHP] Gästebuch mit mehreren Seiten
 
ich hatte auch mal eins gemacht,
nicht so perfekt, aber als beispiel reichts ja vll noch.
Code:
<?php

// Einträge pro Seite
$config['limit'] = 10;

###############################

// Seitenzahl auslesen
if (!isset($_GET['page'])){
   $_GET['page'] = "";
}

// in $count müsste dann die anzahl der einträge stehen.
// $count = ...

$pcount = ceil($count/$config['limit']);
if (!($_GET['page'] >= 1 && $_GET['page'] <= $count) || empty($_GET['page']) || ($_GET['page'] > $pcount)){
   $page = 1;
}else{
   $page = $_GET['page'];
}

// Seitenzahlen berechnung
if ($pcount > 1){
   $pages = "Seiten: ";
   for ($i = 1; $i <= $pcount; $i++){
      if ($i == $page)
         $pages .= "$i";
      else
         $pages .= "<a href=\"index.php?site=guestbook&amp;page=$i\">$i</a>";
      if ($i < $pcount)
         $pages .= ", ";
   }
}else
   $pages = "Seite: 1";

// Welche Einträge werden angezeigt?
$start = $count - $config['limit'] * ($page - 1);
$ende = $start - $config['limit'] + 1;
if ($ende < 1)
   $ende = 1;
if ($count < 1)
   $ende = 0;
if ($start == $ende){
   if ($start == 0)
      echo "
Es sind noch keine Eintr&auml;ge vorhanden.
\r\n\r\n";
   else
      echo "
Eintrag $start von $count
\r\n\r\n";
}else
   echo "
Eintr&auml;ge $ende bis $start von $count
\r\n\r\n";

// Seitenzahlen anzeigen.
echo "
".$pages."
\r\n";

// meine mysql abfrage...
##########
#$offset = ($count-$start);
#$result = mysql_query("SELECT * FROM `...` ORDER BY id DESC LIMIT $offset, {$config['limit']}");
#while ($row = mysql_fetch_row($result)){
#   include("template.php");
#}
##########

?>

Dagon 5. Sep 2005 16:12

Re: [PHP] Gästebuch mit mehreren Seiten
 
Danke, dein Code hilft mir schon mal dabei, die Anzahl der Beiträge aufzusplitten und die entsprechenden Links zu setzen. Da ich aber mit einer Textdatei arbeite, habe ich noch ein Problem: wie kann ich jetzt die Beiträge auch auf die entsprechenden Seiten aufteilen. Momentan ist es noch so, dass eben die Seitenzahlen gesetzt werden, jedoch befinden sich noch immer alle Beiträge auf Seite 1.

NicNacMan 5. Sep 2005 17:21

Re: [PHP] Gästebuch mit mehreren Seiten
 
wie liest du denn die datei bis jetzt aus?

du könntest auch alles in ein array laden, und dann nur die jeweiligen einträge ausgeben
oder mit fseek() an die richtige stelle hüpfen...

Dagon 7. Sep 2005 15:23

Re: [PHP] Gästebuch mit mehreren Seiten
 
So ich habe es jetzt geschft! Ich habe deinen Code von oben genommen, NicNacMan, und ihn so erweitert, dass eben immer nur der entsprechende Bereich angezeigt wird mit Hilfe einer kleinen for-Schleife.

Vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz