Weiterblättern bei suchergebnis

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

  • Weiterblättern bei suchergebnis

    Hallo

    Ich habe folgendes problem.
    Ich habe hier im forum einiges über blätterfunktionen gefunden
    und wollte es nun bei mir in die ausgabe einer suchfunktion einbinden.
    Ich möchte das immer 4 ergebnisse auf einer seite ausgegeben werden
    und dann auf der nächsten seite wieder 4 und immer so weiter.
    er bättert es vernünftig weiter und auch die anzahl der seiten stimmt
    aber er gibt auf jeder seite alle ergebnisse aus.
    kann mir da jemand bitte helfen?

    ich bedanke mich schonmal im voraus bei allen

    PHP-Code:
    <?php
    include("hidden/db_connect2.inc");
    require(
    "hidden/biblio2.inc");

    seitenAnfang("Roy's Filmdatenbank");
    // erstmal Verbindung & Fehlerausgabe kürzer schreiben
    mysql_connect($host$user)
        or die(
    "Verbindung zu mysql fehlgeschlagen!");
    mysql_select_db($dbname)
        or die(
    "Selektierung von Datenbank '$dbname' fehlgeschlagen!");



    $erg mysql_query("SELECT * FROM filme $where")
    or die (
    "Such-Query fehlgeschlagen: ... <b>$where</b> -&gt; "mysql_error());
      
    $erg mysql_query('select distinct art from filme order by art')
    or die (
    "'distinct'-Query fehlgeschlagen: "mysql_error());
    // ... als Optionen des Dropdowns auflisten
    while (list($value) = mysql_fetch_row($erg)) 
        {
          
    $where = ($suche mysql_escape_string($_POST['suche'])
        ? 
    " where art='$suche'" "");
        
         
    $erg mysql_query("SELECT * FROM filme $where ORDER BY kurz ASC; ")
        or die (
    "Such-Query fehlgeschlagen: ... <b>$where</b> -&gt; "mysql_error()); 
                
        
    $Anzahl ="5";
                
        
    $menge = @mysql_num_rows($erg);
                
         if (
    $erg
            {
            if(
    mysql_num_rows($erg)<=0)
                {
                echo 
    "Leider konnte kein Datensatz in der kategorie<br><b>" strtoupper($spalte) . "</b> mit dem Suchbegriff<b>"
                    
    strtoupper($suche) . "</b> gefunden werden!<p>\n";
                unset(
    $set);
                }
            else
                {
                echo 
    "<table border=\"1\">\n";
                
    $seiten ceil($menge $Anzahl);
                                
                if ( !
    $z )
                  
    $z 1;
                                
                
    $maximum $z $Anzahl;
                   
    $minimum $maximum $Anzahl;
                                
                while(
    $row mysql_fetch_row($erg))
                    {
                    for(
    $i=$minimum;$i $maximum$i++) 
                        
                          echo 
    "<tr>\n";
                        echo 
    "<td align=\"center\" width=\"140px\" height=\"140px\">\n";
                         echo 
    "<a href=\"info2.php?ID=$row[0]\" target=\"_self\">";
                        echo 
    "<img src=\"$row[4]\" alt=\"$row[1]\">" "</a><br>\n";
                        echo 
    "</td>\n";
                        echo 
    "<td align=\"center\" width=\"120px\" height=\"140px\">\n";
                        echo 
    "<a href=\"info2.php?ID=$row[0]\" target=\"_self\">" $row[1] . "</a>\n";
                        echo 
    "</td>\n";
                        echo 
    "<td align=\"left\" width=\"420px\" height=\"140px\">\n";
                        echo 
    $row[5];
                        echo 
    "</td>\n";
                        }
                        echo 
    "</table><p>\n";
                        unset(
    $set);
                                
                    if (
    $menge $Anzahl)
                        {
                          echo 
    "<b><center>";
                          
    $vor $z 1// Gibt einen Statuswert ab der sagt ob es noch ältere Einträge gibt.
                          
    $next $z 1// Gibt einen Statuswert ab ob es noch weitere gibt.

                              
    if ($vor != 0) echo "<a href=\"?content=news&z=$vor\">";
                              if (
    $vor == 0
                                { 
                                echo 
    "<span class=\"links_inaktiv\"><strike>zurück</strike></span>";
                                  } 
                              else 
                                {
                                echo 
    "<span class=\"links_normal\">zurück</span>"
                                }
                              if (
    $vor !=0
                            echo 
    "</a>";
                             echo 
    " | ";
                              if (
    $next <= $seiten
                            echo 
    "<a href=\"?content=news&z=$next\">";
                              if (
    $next $seiten
                                { 
                                echo 
    "<span class=\"links_inaktiv\"><strike>weiter</strike></span>";
                                  } 
                              else 
                                {
                                echo 
    "<span class=\"links_normal\">weiter</span>"
                                }
                              if (
    $next <=$seiten
                            echo 
    "</a>";
                              echo
    "</b></center><P>";
                         }
                        echo 
    "<a href=\"index4.php\">Zur&uuml;ck zur Suche</a>\n";
                    }
                            
                }
                else
                echo 
    "<br><i>Es konnten keine Datens&auml;tze gefunden weden.</i><br>\n";
            }
            
    mysql_close();
    seitenEnde();
    ?>

  • #2
    PHP-Code:
    $erg mysql_query("SELECT * FROM filme $where ORDER BY kurz ASC; "
    müsste glaub ich

    PHP-Code:
    $erg mysql_query("SELECT * FROM filme $where ORDER BY kurz ASC limit 4; "
    sein, dann gibt er Dir nur 4 Datensätze aus
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Hallo,

      danke für deine schnelle hilfe.

      Ich habe jetzt aber das problem, dass die blätterfunktion nicht mehr funzt.

      Es werden 4 ergebnisse angezeigt, aber kein blättern mehr.

      Kommentar


      • #4
        Yeah!

        Der k(n)ackpunkt liegt oben bei limit! LIMIT kennt eigentlich 2 argumente. das erste gibt den startdatensatz an (inclusive 0!!) der geliefert wird, das zweite argument beschreibt nur die anzahl der zu liefernden datensätze !

        also: SELECT * FROM bla WHERE [bedingung] LIMIT 0,4

        liefert 4 zeilen beginnend ab dem ersten gefundenem eintrag, und

        SELECT * FROM bla WHERE [bedingung] LIMIT 3,4

        SELECT * FROM bla WHERE [bedingung] LIMIT 7,4

        usw.

        die weiteren zeilen.

        Kommentar


        • #5
          LIMIT 4,4
          LIMIT 8,4

          weil's besser is

          dann musst du natürlich vorher nochzählen wieviel datensätze es gibt, sonst weißt du ja nicht ob du vor- und/oder zurückblättern kannst
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            also nicht num_rows(), sondern "SELECT COUNT(feld)"

            Kommentar


            • #7
              welches num_row muß ich denn ersetzen?

              und was bewirkt das "SELECT COUNT(feld)"???

              das weiterblättern funzt trotz diverser änderungen noch immer nicht, er
              zeigt nur die inaktiven links an.

              Kommentar


              • #8
                Kleiner Tipp am Rande:

                Schicke nicht alles sofort per Echo raus. Das habe ich auch mal in 2000 Zeilen gemacht. Und dann wollte ich eine Cookie-Unterstützung einbauen. Pustekuchen. Da darfst du vorher noch nichts gesendet haben.

                Speicher lieber alles in einer $output-Variable, und schicks am Ende des Scripts raus. So hast du später weniger Stress beim umgestalten.

                Kommentar


                • #9
                  Speicher lieber alles in einer $output-Variable, und schicks am Ende des Scripts raus. So hast du später weniger Stress beim umgestalten.
                  dann doch direkt mit templates!

                  Kommentar

                  Lädt...
                  X