Tutorials von Thomas Frei-Herrmann

[Suchen] [Ergebnis] [Tutorial]

CSV Datei auslesen (bitte guckt auch hier)


Eigenes Skript um in einer CSV-Datei nach bestimmten Kriterien zu suchen.



Tutorial


Unten beschreibe ich, wie ich es hier gemacht habe. Ihr könnt das natürlich völlig anders gestalten und
z.B. die Anzeige der Suchbegriffe oder auch die Anzahl der gefundenen Sätze weglassen.

Zunächst erstellt ihr Euch ein Formular mit exakt den gleichen Feldnamen, die Eure CSV-Datei hat, in meinem Beispiel hier sind das diese 6 Feldnamen:

Vorname
Name
Strasse
PLZ
Stadt
Land

Bei den “Schaltfläche-Eigenschaften” des Buttons “suchen” gebt Ihr die Seite an, auf der Ihr das Skript zum Anzeigen der CSV-Datei einbaut. Bei mir heißt diese Seite “result.php” und befindet sich im Ordner “html” (siehe Bild unten). Die Seite “result.php” muss auf die Endung .php umgestellt sein.

Da sich mein “Suchen-Formular” auf der “Home” (Startseite) befindet, muss ich die “relative Pfadangabe” zu dem Ordner “html” eintragen, also hier:

./html/result.php

wenn Ihr das “Suchen-Formular” auf einer “Unterseite” einbaut, dann befindet sich diese ja bereits im Ordner “html” und die “relative Pfadangabe” würde entfallen, dann tragt Ihr dort nur die Seite ein,
also hier:

result.php

Nun wechseln wir auf die Ergebnisseite (bei mir “result.php”), auf die mittels Klick auf den “suchen” Button meines Formulars geleitet wird und an die sämtliche Feldnamen als “POST-Variablen” übergeben werden.

Um sicher zu stellen, dass der Benutzer keine ungewollten Leerzeichen bei der Eingabe der Suchbegriffe eingegeben hat, trimme ich diese “POST-Variablen” (entferne vor- und nachstehende Leerzeichen) ganz am Beginn der Seite (siehe Bild unten) mit dem PHP-Befehl trim.

Der PHP-Code (wie unten im Bild zu erkennen) gehört dann in die Layout-HTML der Ergebnisseite.

> auf Layout klicken > Fenster “Layout-Eigenschaften” > Button “HTML” > “Beginn der Seite” einfügen

... und zwar ganz, ganz oben (es darf oben keine Leerzeile davor stehen..

Als nächstes habe ich im oberen Bereich meiner Seite anzeigen wollen, welche Suchbegriffe für die einzelnen Felder eingegeben wurden oder auch nicht.

Hierfür doppelklicke ich in ein jeweils aufgezogenes Textfeld und klicke im Fenster “Text-Eigenschaften” auf den mittleren Button “Textfeld” und dort dann auf den Button “HTML” ...

... es öffnet sich der “HTML-Code-Editor”, in den ich solche PHP-Codes einfüge.

Ich habe also für jedes Suchfeld den Code, wie unten im Bild zu sehen, eingefügt. Natürlich angepasst bei jedem Feld. Das Bild zeigt den Code für das Feld “Vorname”, beim nächsten Feld “Name”, müsst Ihr also überall wo jetzt im Code (unten) “Vorname” steht alles auf “Name” ändern, usw., usw...

Die POST-Variable “AlleZeigen” ist der Feldname meiner “Radio-Buttons” zur Wahl im Formular, ob alle Datensätze gezeigt werden oder ob eben gesucht werden soll. Wenn der Wert des gewählten
“Radio-Buttons” “alle” ist, dann sollen eben alle Datensätze gezeigt werden.

<?php
   if (isset($_POST['Vorname']) && trim($_POST['Vorname'])<>"")
   {
           $vorname = htmlentities($_POST['Vorname'],ENT_QUOTES);
           echo "<font color='#0000FF'>$vorname</font>";
   } else {
           if ($_POST['AlleZeigen'] == 'alle')
              {
                    echo "<font color='#0000FF'>alle zeigen</font>";
                 } else {
                    echo "<font color='#FF0000'>keine Eingabe</font>";
           }
   }
?>

... auf die gleiche Art und Weise habe ich nun das eigentliche Skript zur Anzeige der CSV-Datei in ein Textfeld eingefügt.

 

... und hier das Skript (für detaillierte Kommentare zum Skript guckt bitte auch hier).

... wobei Ihr hier insbesondere auf die Position der Feldnamen achten müsst, also auf die Variable $data

if ($data[0] == $_POST['Vorname'])

In meiner CSV-Datei ist also das Feld “Vorname” an 1. Stelle, dies ist hier Position “0”, usw.

... nun wollte ich noch, falls nichts gefunden wurde, dass mein “Achtung” Bild angezeigt wird, also hier die Variable $zaehler null ergibt.

Ich muss (in meinem Fall) das Ergebnis der Variable $zaehler durch 6 teilen, da ich eben 6 Feldnamen in meiner CSV-Datei verwende und diese Variable mit jedem Feldnamen im Skript (oben) hochgezählt wird.

<?php
   if (round($zaehler/6,0) == 0)
   {
      echo '<img src="../assets/images/Achtung.png" alt="Keine Ergebnisse" title="Keine Ergebnisse">';
   }
?>

... und unten noch der “Einsatz” der Variable $zaehler zur Anzeige der Anzahl der gefundenen Datensätze.

<?php
   if (round($zaehler/6,0) == 0)
   {
         print ("<font color='#FF0000'><b>keine</b></font>");
      } else {
         print (round($zaehler/6,0));
   }
?>

... und auch noch die Anzeige der Variable $spalten, die als Ergebnis die Anzahl sämtlicher Datensätze meiner CSV-Datei darstellt.

Viel Erfolg!

nach oben

zurück

diese Seite weiter empfehlen



Counter Statistik