Ergebnisseiten über mehrere Seiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ergebnisseiten über mehrere Seiten

    Wie bekomme ich es am besten hin, eine Ergebnisseite (einer Suche in einer Datenbank) über mehrere Seiten zu verteilen (mit LIMIT)?

    Jeweils eine neue Suche und die Suchparameter in einem Cookie speichern? Gibt es da ggf. ein Standardverfahren?

    Danke euch!

  • #2
    Such mal hier im Forum nach Blättern...
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      Original geschrieben von hhcm
      Such mal hier im Forum nach Blättern...
      Danke für den Tipp! Man sollte nicht meinen, dass mir das Wort "blättern" dazu nicht eingefallen ist. *grmpf*

      Jetzt habe ich schon einige interessante Seiten gefunden, die mir auch zum Verständnis geholfen haben.

      Allerdings fehlt mir noch ein Hinweis, wie ich derartiges "Blättern" bei einer Suche durchführe.

      Die Scripte, die ich zum Blättern gefunden habe, waren allesamt so, dass jeweils die gesamte Tabelle durchblättert wurde.

      Bei mir sieht es so aus, dass ich von einem Suchformular per $_POST einige Werte in meine Variablen fülle.

      Wenn ich nun blätter, sind die "Suchvariablen" naturgemäß beim nächsten Aufruf leer.

      Is es daher üblich die Suche (Query) in einer Session oder einem Cookie zu speichern oder die Ergebnisse in einem Array? Oder übergibt man die alten Suchvariablen abermals per $_POST an die "neue geblätterte" Seite ?


      Hier fehlt mir noch das Verständnis zu der üblichen Verfahrensweise.

      Danke im Voraus!

      Kommentar


      • #4
        Hier ein Code, der auch leicht zu verändern ist

        du kannst deine Variable dann immer über Get übergeben

        <?php
        require('config/config.php');
        require("session.php");

        #echo "$_SESSION[usr]";

        // how many rows to show per page
        $rowsPerPage = 10;

        // by default we show first page
        $pageNum = 1;

        // if $_GET['page'] defined, use it as page number
        if(isset($_GET['page']))
        {
        $pageNum = $_GET['page'];
        }

        // counting the offset
        $offset = ($pageNum - 1) * $rowsPerPage;

        $query = "SELECT * FROM tab_files ORDER BY name ASC LIMIT $offset, $rowsPerPage";
        $result = mysql_query($query) or die('Error, query failed');

        // print the random numbers

        echo"<table border='0'>";

        echo"<form method='POST' action='?k=search'>";

        echo"<tr>";

        echo"<td colspan='2'><input class='content' name='search' maxlenght='20' size='20'></td>";

        echo"<td colspan='9'><input type='submit' class='inputfeld2' value='Search' name='login'></td>";

        echo"</form>";

        echo"</tr>";

        echo"<tr>";

        echo"<td colspan='1'><p class='menuclass'>Link</p></td>";
        echo"<td colspan='1'><p class='menuclass'>Status</p></td>";

        echo"</tr>";



        while($row = mysql_fetch_array($result))
        {

        echo"<tr>";

        echo"<td><p class='content'>$row[2]</p></td>";

        echo"<td><p class='content'>$row[3]</p></td>";

        echo"</tr>";

        }

        echo"</table>";
        // how many rows we have in database
        $query = "SELECT COUNT(name) AS numrows FROM tab_files";
        $result = mysql_query($query) or die('Error, query failed');
        $row = mysql_fetch_array($result, MYSQL_ASSOC);
        $numrows = $row['numrows'];

        // how many pages we have when using paging?
        $maxPage = ceil($numrows/$rowsPerPage);

        // print the link to access each page
        $self = $_SERVER['PHP_SELF'];
        $nav = '';
        for($page = 1; $page <= $maxPage; $page++)
        {
        if ($page == $pageNum)
        {
        $nav .= " $page "; // no need to create a link to current page
        }
        else
        {
        $nav .= " <a href=\"?k=vid_arc&page=$page\">$page</a> ";
        }
        }

        // creating previous and next link
        // plus the link to go straight to
        // the first and last page

        if ($pageNum > 1)
        {
        $page = $pageNum - 1;
        $prev = " <a href=\"?k=vid_arc&page=$page\">[<]</a> ";

        $first = " <a href=\"?k=vid_arc&page=1\">[<<]</a> ";
        }
        else
        {
        $prev = '&nbsp;'; // we're on page one, don't print previous link
        $first = '&nbsp;'; // nor the first page link
        }

        if ($pageNum < $maxPage)
        {
        $page = $pageNum + 1;
        $next = " <a href=\"?k=vid_arc&page=$page\">[>]</a> ";

        $last = " <a href=\"?k=vid_arc&page=$maxPage\">[>>]</a> ";
        }
        else
        {
        $next = '&nbsp;'; // we're on the last page, don't print next link
        $last = '&nbsp;'; // nor the last page link
        }

        // print the navigation link
        echo $first . $prev . $nav . $next . $last;

        // and close the database connection
        #include '../library/closedb.php';


        ?>

        Kommentar

        Lädt...
        X