Ankündigung

Einklappen
Keine Ankündigung bisher.

Blätterfunktion erweitern

Einklappen

Neue Werbung 2019

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

  • Blätterfunktion erweitern

    hallo,

    Ich habe gestern mit diesem Beitrag
    (:http://www.php-faq.de/q/q-mysql-seitenweise.html)
    eine Blätterfunktion zum laufen bekommen.

    Nun würde ich diese gerne so erweitern, dass der Benutzer z.B per combobox auswählen kann wieviel Datensätze gleichzeitig angezeigt werden sollen( 25/100/alle ). Die einzige Lösung die ich hinbekommen würde wäre , mehrere Dateien mit verschiedenem Limit Wert zu erstellen und die bei dem Aufruf des entsprechendem Combowertes aufzurufen.

    Funktioniert aber doch bestimmt auch alles mit einer Datei, oder? Also warsch. mit einer if-Abfrage wobei bei "alle" ja das limit ganz wegfallen müsste(oder auf 100000000000000( oder so gesetzt werden_

    Habt Ihr ein Idee?
    Danke für eure Hilfe.

  • #2
    Code:
    $anzahl = $_POST['anzahl'];
    
    $sql = "SELECT * FROM test LIMIT ".$anzahl."";
    mysql_query($sql);
    dann machste noch ne abfrage falls $anzahl == 0 ist dann soll er: $sql = "SELECT * FROM test"; als query auswählen.

    oder hab ich was falsch verstanden?

    Kommentar


    • #3
      wenn ich das Script richtig durchschaut habe,
      sollte folgendes machbar sein:
      Code:
         // Datendefinition für die Clientausgabe
         $start = (isset($start)) ? abs((int)$start) : 0;
         $limit = 10;                     // Datensätze pro Ausgabeseite
      /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ** die Definition für $limit hier rausnehmen !
      */
      
         // Feststellen der Anzahl der verfügbaren Datensätze.
         $resultID = @mysql_query("SELECT COUNT(ID) FROM ".$table);
         $total    = @mysql_result($resultID,0);
      
      /* ... und $limit an dieser Stelle definieren:
      ** $limit = die ausgewählte Anzahl, oder
      ** $limit = $total , wenn 'alle' ausgewählt wurde.
      */
      
         // Ggf. $start korrigieren (falls Parameter in
         // der URL manipuliert wurde)
         $start    = ($start >= $total) ? $total - $limit : $start;
      ~dilemma~

      Nachtrag, etwas genauer:
      Code:
         // Datendefinition für die Clientausgabe
         $start = (isset($start)) ? abs((int)$start) : 0;
         $limit = 10;                     // Datensätze pro Ausgabeseite
      /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ** die Definition für $limit hier rausnehmen !
      */
      
         // Feststellen der Anzahl der verfügbaren Datensätze.
         $resultID = @mysql_query("SELECT COUNT(ID) FROM ".$table);
         $total    = @mysql_result($resultID,0);
      
      /* ... und an dieser Stelle sinngemäß folgendes einfügen: */
      
         $limit = 10;  // Vorgabewert, der je nach Auswahl verändert wird
      
         if (isset($_POST['auswahl'])) {
            if (trim($_POST['auswahl']) == 'alle') {
               $limit = $total;
            }
            else {
               $limit = abs((int)$_POST['auswahl']);
            }
         }
      
      
         // Ggf. $start korrigieren (falls Parameter in
         // der URL manipuliert wurde)
         $start    = ($start >= $total) ? $total - $limit : $start;
      Meiner Meinung nach sind sonst keine weiteren Änderungen an dem Script nötig

      ~dilemma~

      Kommentar

      Lädt...
      X