gästebuch seite 2 3 usw...

HAL

Erfahrenes Mitglied
wenn bei meinem gästebuch beine bestimmte anzahl von angezeigten beiträgen auf der seite übeschritten ist, kommt "seite kann nciht angezeigt werden" ich habe jetzt in die mysql abfrage geschrieben, dass nur die jeweils letzten 10 beiträge angezeigt werden, will aber hinbekommen, dass je nach menge der gesamteinträge automatisch weitere seiten erstellt werden, die alle 10 beiträge enthalten. nur hab ich keine ahnung, wie ich das verwirklichen könnte.
könnt ihr mich ein wenig inspirieren bitte?

THX
HAL
 
PHP:
$maximal = 10;

if(!isset($_REQUEST["page"])) $npage = 1; else $npage = $_REQUEST["page"];

$anz = count($entryarray);
$anzold = $anz;

if ($maximal <= $anz) $anz = $maximal;

for ($i=($npage-1)*$maximal; $i<(($npage-1)*$maximal)+$maximal; $i++) {
    if ($i < $anzold) {
        echo $entryarray[$i] //Eintrag ausgeben (anpassen!)
    }
}

if ($maximal < $anzold) {
    $pages = ceil($anzold / $maximal);
    echo "<br>Seiten: ";
    for ($i=1; $i<=$pages; $i++) {
        if ($i == $npage) echo " ".$i;
        else echo " <a href=\"gb.php?page=".$i."\"><u>".$i."</u></a>";
    }
}

Weis nicht wieso - hab des letztens einfach mal zamgebastelt - abba es funzt! (Es könnten sich etz nur n paar Tippfehler eingschlichen haben -> untested)


<edit>Na prima: 3 Postst zur gleichen Minute und ich bin mal wider der letzte :p
 
Original geschrieben von Meisterbrau
ich denke was du suchst gibts schon in der tutorials-section (warum heißt die seite wohl tutorials.de ? ^^)
link

das ist ja ein nettes tut, aber wie binde ich jetzt meine daten ein? wo muss die query für die eintrags-datenbank hin?
 
hallo? kann mir niemand sagen, wie ich dieses tutorial auch ANWENDEN kann? ich kenn mich halt noch nicht so mit php aus...
 
Wieso nimmst du nich meins? Da gehts ausm Code raus, wie mans einsetzen soll (is abba dafür net so komfortabel)
 
Original geschrieben von Nuinmundo
Wieso nimmst du nich meins? Da gehts ausm Code raus, wie mans einsetzen soll (is abba dafür net so komfortabel)

und wie benutze ich deins? was soll ich denn da für ein array reinschreiben?
 
PHP:
$entryarray = array();
$query = "SELECT * FROM `gbook` ORDER BY `id` ASC";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
    $entryarray[] = $row["entry"];
}

....

if ($i < $anzold) {
    echo "<div style=\"width:400px;border:1px solid #000000;\">".$entryarray[$i]."</div>";
}

Das wäre ein Beispiel!
 
Original geschrieben von Nuinmundo
PHP:
$entryarray = array();
$query = "SELECT * FROM `gbook` ORDER BY `id` ASC";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
    $entryarray[] = $row["entry"];
}

....

if ($i < $anzold) {
    echo "<div style=\"width:400px;border:1px solid #000000;\">".$entryarray[$i]."</div>";
}


Das wäre ein Beispiel!

ich meinte eigentlich (auch wens nciht so rüberkam^^): was meinst du mit entryarray? ich kann ja mal meine gb-seite posten, damit du siehst, wie sie aufgebaut ist:

PHP:
<?php
$abfrage = "SELECT * FROM `messages` ORDER BY `ID` DESC LIMIT 10";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$Name = $row->poster;
$abfrage2 = "SELECT * FROM `userdaten` WHERE Name LIKE '$Name'";
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2))
{
$posts = $row2->posts;
}
if ($posts < "10") 
{
$status = "Newbie";
}
elseif ($posts >= "10" and $posts < "30")
{
$status = "mussnochüberlegen1";
}
elseif ($posts >= "30" and $posts < "60")
{
$status = "mussnochüberlegen2";
}
elseif ($posts >= "60" and $posts < "100")
{
$status = "mussnochüberlegen3";
}
else
{
$status = "mussnochüberlegen4";
}
mysql_free_result($ergebnis2);
echo "<hr>";
echo "<table border=\"1\" width=\"100%\"  bordercolor=\"#FFFFFF\" frame=\"void\">\n";
echo "<colgroup><col width=\"115\"><col>";
echo "<tr align=\"left\" valign=\"top\">\n";
echo "<td rowspan=\"2\"><b>",$row->poster,"</b><br>",$status,"<br>Beiträge:<b>",$posts,"</b></td>\n";
echo "<td>Betreff: <b>",$row->titel,"</b> erstellt am: ",$row->posttime,"</td>\n";
echo "</tr>\n";
echo "<tr align=\"left\" valign=\"top\">\n";
echo "<td>";
echo nl2br ($row->text);
echo "</td>\n";
echo "</table>\n";
}
mysql_free_result($ergebnis);
?>

(die db-abfrage innerhalb der eigentlichen db-abfrage checkt die anzahl der posts, die natürlich in einer anderen tabelle als die nachrichten selber gepostet sind. es ist eigentlich kein gästebuch, sondern ein einzelner foren-thread (man soll klein anfangen *g*))
 
Zurück