While schleife mit LIMIT

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

  • While schleife mit LIMIT

    Ich habe eine Blätterfunktion und möchte nicht mit mysql arbeiten aus bestimmten gründen. Und für die Blätterfunktion sollte ein LIMIT besitzen, sonst zeigt es alle Bilder aufgelistet.
    Wie kann man da ein LIMIT setzen?
    Teil vom Script:
    PHP-Code:
    $fp=opendir ('./Bilder');
    while (
    $file readdir ($fp)){
    $verzeichnis[] = $file;
    }
    closedir($fp);
    $anzahl 0;
    while(list(
    $key,$val)=each($verzeichnis)){
    if (
    $val != ".." && $val !=".") {
    $anzahl++;
    $pik "Piktogramm/".$anzahl."_jpg.jpg";
    $pic "Bilder/".$anzahl."_jpg.jpg";
    if(
    $e%2==1$msg .= "<tr>";
    $msg .= (file_exists($pic)) ? "
    <td width=\"50%\"><div align=\"center\">
    <a target=\"_blank\" href=\""
    .$pic."\">
    <img src="
    .$pik." border=\"0\"></a></div>
    </td>" 
    "";
    if(
    $e%2==0$msg .= "</tr>";
    $e++;
    }


  • #2
    PHP-Code:
    while(/* whatever */ && $anzahl<=10
    oder so.

    OffTopic:
    p.s. kann man die gründe erfahren, die gegen eine db sprechen?

    Kommentar


    • #3
      Du liest einfach ein Verzeichnis aus, speicherst die Dateinamen in einem Array und es ist doch kein Problem dessen Ausgabe zu begrenzen oder?

      Einfach nur die Elemente ab <Seitennummer>*<Anzahl_Bilder_pro_Seite>
      bis
      <Seitennummer>*<Anzahl_Bilder_pro_Seite> + <Anzahl_Bilder_pro_Seite>
      ausgeben, wobei <Seitennummer> zum Beispiel als GET-Parameter übergeben wird.

      Kommentar


      • #4
        ... oder per if-abfrage und per break aus der schleife springen
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          Ich möchte auf de seite Fun Bilder auflisten und mit wenig aufwand. Und das man noch neue Bilder uploaden kann und nicht viel verändern muss das sie richtig angezeigt werden. könnt ihr vieleicht ein beispiel zum script machen? wäre n1

          Kommentar


          • #6
            Schau doch mal hier nach: http://php-resource.de/scripte/browsesub/PHP/Picture/1/
            Sind ein paar brauchbare Sachen dabei. Das geht dann auch ohne viel aufwand. Oder soll es was selbst programmiertes sein?

            Kommentar


            • #7
              Es ist lieber etwas selbstprogrammiertes!
              mit break oder die andere antworten gehts es nicht so wie ich es möchte. wenn ich auf seite zwei klicke kommen wieder die gleichen bilder und nicht ab nummer 11 ...

              Oder ist es leichter zu helfen wenn ich das ganze script zeigen soll?

              Kommentar


              • #8
                nicht unbedingt das ganze Script, aber die relevanten Stellen mit deinen Versuchen.

                Kommentar


                • #9
                  PHP-Code:
                  $tree dir("./Bilder"); // bzw. anderes Verzeichnis
                  $anzahl = -2;
                  while (
                  $data $tree->read())
                  {
                  $anzahl++;
                  }

                      
                  $treffer $anzahl;

                      
                  $seitenzahl ceil($treffer/$eps);

                      if (!isset(
                  $page) || $page == 0) {
                          
                  $page 1;
                      } 
                  ....
                  PHP-Code:
                  $fp=opendir ('./Bilder');
                  while (
                  $file readdir ($fp)){
                  $verzeichnis[] = $file;
                  }
                  closedir($fp);
                  $anzahl 0;
                  while(list(
                  $key,$val)=each($verzeichnis)){
                  if (
                  $val != ".." && $val !=".") {
                  $anzahl++;
                  $pik "Piktogramm/".$anzahl."_jpg.jpg";
                  $pic "Bilder/".$anzahl."_jpg.jpg";
                  if(
                  $e%2==1$msg .= "<tr>";
                  $msg .= (file_exists($pic)) ? "
                  <td width=\"50%\"><div align=\"center\">
                  <a target=\"_blank\" href=\""
                  .$pic."\">
                  <img src="
                  .$pik." border=\"0\"></a></div>
                  </td>" 
                  "";
                  if(
                  $e%2==0$msg .= "</tr>";
                  $e++;
                  }
                  }


                  $msg .= "</table><br>";
                  $msg .= "<div align=\"center\">";
                  if (
                  $eps>$treffer) {
                  }
                  else {
                  if (
                  $_GET['page']>1) {
                  $msg .= "<font size='1' face='Verdana'><a href=\"$_SERVER[PHP_SELF]?page=1&eps=$eps\">
                  <<</a>|<a href=\"
                  $_SERVER[PHP_SELF]?page=".$back."&eps=$eps\">
                  Zur&uuml;ck</a></font>"
                  ;
                  }
                      if (
                  $page > ($max_seiten-1)/2+&& $seitenzahl 
                  $max_seiten) {
                          if (
                  $page $seitenzahl-(($max_seiten-1)/2)) {
                              
                  $vor_max $seitenzahl-$max_seiten;
                          } else {
                              
                  $vor_max $page-(($max_seiten-1)/2+1);
                          }
                          
                  $msg .= "<font size='1' face='Verdana'>|
                  <a href=\"
                  $_SERVER[PHP_SELF]?page=".$vor_max."
                  &eps=
                  $eps\">...</a></font>";
                      } 
                  ...
                  Script online: http://www.gochat.ch/unterhaltung/fu...autos/list.php
                  Zuletzt geändert von oKin3; 23.07.2005, 20:46.

                  Kommentar


                  • #10
                    Wenn Du schon das gesamte Vereichnis einliesst ... warum schau'st Du nicht einfach mal ins PHP-Manual ... was es so an array Funktionen gibt ... kleiner Tipp array_slice ... !
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      Original geschrieben von oKin3
                      Es ist lieber etwas selbstprogrammiertes!
                      mit break oder die andere antworten gehts es nicht so wie ich es möchte. wenn ich auf seite zwei klicke kommen wieder die gleichen bilder und nicht ab nummer 11 ...

                      Oder ist es leichter zu helfen wenn ich das ganze script zeigen soll?
                      Du musst auch schon per GET z.B. nen Parameter übergeben in dem du dann sagst welche Seite gerade aktuell ist und errechnest dann einfach welches Bild grade dran ist und zeigst das an ...
                      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                      var_dump(), print_r(), debug_backtrace und echo.
                      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php

                        $length 
                        10// soviele pro Seite
                        $page = isset($_GET['page']) ? $_GET['page'] : 0// da sind wir gerade
                        $offset $page $length;

                        // Verzeichnis lesen
                        $fp=opendir ('./Bilder');
                        while (
                        $file readdir ($fp)){
                            
                        // aber nur Dateien
                            
                        if (is_file($file)) {
                                
                        $verzeichnis[] = $file;
                            }
                        }
                        closedir($fp)

                        asort($verzeichnis);

                        for (
                        $i $offset$i $offset+$length$i++) {
                            echo 
                        '<img src="Bilder/'.$verzeichnis[$i].'"><br />';
                        }

                        if (
                        $page 0) {
                            echo 
                        '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page-1).'"><<</a> ';
                        }
                        if (
                        $page count($verzeichnis)*$length) {
                            echo 
                        '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page+1).'">>></a> ';
                        }

                        ?>
                        (Weiß auch nicht warum, fühl mich heut so.)

                        Kommentar

                        Lädt...
                        X