Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hm... ich mache gerade eine Art Newsarchiv und will da die Funktion haben (wie man's öfters sieht), dass man am unteren Ende der Page diese Links abgezeigt bekommt:

[seite 2] [3] [4] ....

(also die News sollen pro Seite quasi auf 5 beschränkt sein)

Aber leider kapier ich nicht, wie ich das anstellen soll? Also meine mysql-tabelle heisst übrigens: "tbl_news".

Gibt es eine Standardfunktion? Kann mir jemand helfen?

Geschrieben

Hi,

schau mal in dein SQL Handbuch ;)

Hab den Code momentan nicht 100% im Kopf, müsstest du nachschauen.

Lass dir für die erste Seite z.B. die ersten 5 Datensätze ausgeben, für Seite 2 dann die Datensätze 5-10 usw usf.

Oder pack alles in ein Array + IDs und gib auf den Seiten immer die entsprechenden IDs aus (Seite 2 IDs 5-10 usw usf).

Geschrieben

hi,

100% kann ich dir auch nicht sagen, wie du es mit den Seiten machst, aber die SQL abfrage wäre:

"SELECT deine Felder FROM deine Tabelle WHERE deine Bedingung LIMIT $a,5"

Das heist die Variable $a setzt du erstmal auf 0, dann in einer Schleife jeweils um 5 hochzählen. So werden immer nur 5 Datensätze angezeigt.

Zum Verstehen:

...LIMIT $anfang, $länge

Geschrieben

Wenn du PHP nutzt kannst du deine Abfrage nur teilweise ausgeben lassen, hier mal ein Bsp wie ich es seitenweise mit <First><Previous><Next><Last> gemacht habe...



      $menge = mysql_num_rows($result);

      $MaxNrPage = floor($menge/$MaxLines) + 1;

      echo "<br><small>Insgesamt ".$MaxNrPage." Seiten |Aktuelle Seite = ".$CurPageNr."</small>";


# $menge ist die Menge der zurückgelieferten Datensätze. 

# $MaxLines ist die maximale anzahl von Zeilen pro Seite.

# Aus beiden errechne ich die maximal Anzahl Seiten


    $StartIndex = ($CurPageNr* $MaxLines) - $MaxLines;

    $EndIndex = ($CurPageNr* $MaxLines) -1;

    if ($EndIndex > $menge-1)

    {

      $EndIndex = $menge-1;

    }


# $CurPageNr ist die Nummer der aktuellen Seite (1, 2, 3 etc.)

# hier wird der Start- bzw. der Endindex für die 

# anzuzeigenden Datensätze bestimmt.


    for ($i=$StartIndex;$i<=$EndIndex;$i++)

    {

      [...]

      echo "<td>".mysql_result($result,$i,1)."</td>\n"; 

      [...]

    }

# Die Datensätze werden in einer Table ausgegeben.

# Mit mysql_result kann ein bestimmter Datensatz ($i) 

# angezeigt werden. (siehe SelfPHP z.B.)


# hier ein Beispiel für die Weiterschaltung


    # ************************* Next ****************************

    if ($CurPageNr==$MaxNrPage)

    {

      echo "<s>Next</s> | ";

    }

    else

    {

      echo "<a href=\"".$_SERVER['PHP_SELF']."?NewPage=";

      echo ($CurPageNr+1);

      echo "&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">Next</a> | ";

    }


# der folgende Code steht am Anfang des Dokuments


<?php


  $CurPageNr = 1;


  $QStr = $_SERVER["QUERY_STRING"];

  if (!$QStr == "")

  {

  /*

  Falls Querystring vorhanden wurde Seite blättern gewählt

  Die einzelnen Übergaben werden ausgelesen und ein Post simuliert

  */

    $tmpAr = explode("&", $QStr);

    $_POST["submit"] = "submit";

    for ($i=0;$i<count($tmpAr);$i++)

    {

      $QStrAr = explode("=", $tmpAr[$i]);

      if ($QStrAr[0] == "NewPage")

      {

        $CurPageNr = $QStrAr[1];

      }

      if ($QStrAr[0] == "SB")

      {

        $_POST["Suchbegriff"] = $QStrAr[1];

      }

      if ($QStrAr[0] == "K")

      {

        $_POST["Kriterium"] = $QStrAr[1];

      }

      if ($QStrAr[0] == "S")

      {

        $_POST["Sort"] = $QStrAr[1];

      }

    }

  }

  echo "<input Type=\"hidden\" name=\"PageID\" Value=\"".$CurPageNr."\">";

?>


# Damit werden die übergebenen Daten (von Next z.B.)

# geparst und über  $_POST["submit"] = "submit"; wird

# die Variable submit gesetzt, was später abgefragt wird.


# später im Dokument steht dann...


<?php

  if (isset($_POST["submit"]))

  {


#dort wird dann die Abfrage erzeugt (aus den Daten von $_POST)

# und die Tabelle angezeigt, siehe Anfang


Wenn du das anpasst sollte es auch bei dir mit Seite1, 2, 3, 4... funktionieren. Abhängig von $CurPageNr zeigst du Links zu $CurPageNr+1 bis $CurPageNr+4 an o.ä.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...