Suche in einem Textfile und Blätterfunktion

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

  • Suche in einem Textfile und Blätterfunktion

    Hallo Gemeinde,

    vor einiger Zeit habe ich dieses kleine Script gebastelt. (mein erstes ;-) )
    Über ein Formular wird in einer Textdatei nach einem passenden Wort gesucht und die entsprechende Zeile ausgegeben.
    Das klappt alles ganz gut.
    Ein Problem gibt es aber noch - es kann sein, dass sehr viele passende Einträge gefunden werden.
    Nun sollte noch eine Blätterfunktion eingebaut werden mit der man in 10er schritten von Seite zu Seite springt.
    Da versagt mein bisheriges Wissen in PHP allerdings.
    Jetzt sitze ich schon vier abende an der Sache, habe mich durch etliche Foren gewühlt, und komme einfach nicht weiter!!!
    Wie bekomme ich heraus wie oft die Schleife durchlaufen wird?
    Dann könnte das Script die Durchläufe durch 10 teilen oder?

    Na ja jedenfalls bin ich mit meinem Latein am ende oder ich habe einfach die falsche Brille auf...

    Wäre schön wenn Ihr mir Denkanstöße dazu geben könntet.
    Carsten

    PHP-Code:


    if ($suche == aa) { 
    $datei "./datenbank/listen/thueringen.txt"
    $suchdaten file($datei); 

    while (list (
    $zeilennummer$line) = @each ($suchdaten))  

    $gefunden eregi($search$line); 
    $daten explode("#"$line); 

    if(
    $gefunden
    {  
    echo 
    "  $zeilennummer 
    <div class=\"name\">
    $daten[0] 
    <div class=\"list\">
    $daten[1] 
    <div class=\"lit\">
    $daten[2] 
    </div></div></div><br>"
    ;        
    echo 
    $test
    $g .= "1"
    }} 


    if(
    $g=="") {echo "nichts gefunden";}  
     }
    $suche false

  • #2
    http://www.php-resource.de/forum/sho...ght=bl%E4ttern

    Ist das vielleicht eine Hilfe?

    Kommentar


    • #3
      Re: Suche in einem Textfile und Blätterfunktion

      PHP-Code:
      <?php

      $maxperpage 
      10;
      $file './datenbank/listen/thueringen.txt';

      sesssion_start();

      // ...

      if (!isset($_SESSION['hits'])) {
          
      $data file($file); 
          
      $_SESSION['hits'] = array();
          foreach (
      $data as $num => $line) {
              if (
      strpos($line$search) !== false) {
                  
      $_SESSION['hits'][$num] = $line;
              }
          }
      }

      if (
      count($_SESSION['hits']) > 0) {
          if (isset(
      $_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0) {
               
      $page $_GET['p'];
          } else {
               
      $page 0;
          }
          for (
      $i $page*$maxperpage$i < ($page+1)*$maxperpage && $i count($_SESSION['hits']); $i++) {
              echo 
      $i.' - '.$_SESSION['hits'][$i].'<br />';
          }
          if (
      $page 0) {
              echo 
      '<a href="?p='.($page-1).'">&laquo;</a> ';
          }
          if (
      count($_SESSION['hits']) > ($page+1)*$maxperpage) {
              echo 
      '<a href="?p='.($page+1).'">&raquo;</a>';
          }
      } else {
          echo 
      'nichts gefunden';
      }

      Kommentar


      • #4
        Vielen dank für die Hilfe,

        komme leider erst heute dazu mir den Codeschnipsel näher anzusehen.
        Ich habe ihn gleich mal eingebaut und festgestellt dass im Sessionfile alle Treffer korrekt gespeichert werden aber die Treffer in der Ausgabe erst in der entspr. Zeile wie in der Originaldatei angezeigt werden.
        Eine Idee wo das Problem liegen könnte?

        Grüße der_Carsten

        Kommentar


        • #5
          o.k. hab es eben selbst gefunden



          statt:
          PHP-Code:
            if (strpos($line$search) !== false) {
                      
          $_SESSION['hits'][$num] = $line;
                  } 
          sollte es so sein:
          PHP-Code:
          if (strpos($line$search) !== false) {
                      
          $_SESSION['hits'][$i++] = $line;
                  } 
          tausend dank nochmals.

          Kommentar

          Lädt...
          X