• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Textfile auslesen

Status
Für weitere Antworten geschlossen.

curly_de

Neues Mitglied
Hallo,
ich möchte auf meine Webseite ein Textfile (artikel.txt sep. nach Semikolon) übertragen und diese mit PHP nach Eingabe der Artikel-Nr. auslesen und dann die Daten zum Arrtikel anzeigen. Hat jemand eine einigermaßen leichte Idee ? Datenbank lohnt nicht, da es sich nur um knapp 100 Artikel handelt.
Dke / Gruß
Michael
 
Werbung:
Könntest Du mir mal bitte zwei komplette Zeilen aus deinem Textdokument posten, damit ich mir ein besseres Bild machen kann

feyyaz
 
So hier gab es eine weile lang keine Reaktion mehr. Versuche das mal dann so zu beantworten.

Ich gehe mal von einem Textdokument: artikel.txt aus
Code:
ANR00001;CDR-650 (10 SlimCase);4,90;20;
ANR00002;CDR-650 (25 Spindel);7,90;20;
ANR00003;CDR-700 (50 Spindel);14,90;20;
ANR00004;CDR-700 (100 Spindel);24,90;20;
ANR00005;CDRW-700 (10 Case);14,90;20;
...

wenn wir nun keinen komplizierten parser schreiben möchten, würde ich als erstes artikel.txt nach artikel.php kopieren. Anschließend ändern wir die Struktur der Datei wie folgt:

[php:1:59cbead478]
<?
$artikel = array (
"ANR00001","CDR-650 (10 SlimCase)","4,90","20",
"ANR00002","CDR-650 (25 Spindel)","7,90","20",
"ANR00003","CDR-700 (50 Spindel)","14,90","20",
"ANR00004","CDR-700 (100 Spindel)","24,90","20",
"ANR00005","CDRW-700 (10 Case)","14,90","20"
...
);
?>
[/php:1:59cbead478]
ich empfehle hier die Suchen&Ersetzen Funktion einiger Editoren zu benutzen und ; durch "," zu ersetzen. Der rest ist dann leicht per hand zu ändern.

jetzt haben wir eine fix&fertige php tabelle.

als nächstes sollten alle seiten die mit den Artikeln arbeiten soll diese Datei includieren. das geschieht über folgende Zeile.

[php:1:59cbead478]
<?
...
@include("artikel.php");
...
?>
[/php:1:59cbead478]

jetzt kann man über eine schleife die felder abfragen. Ich stelle das ergebnis in einer Tabelle dar.
der zu suchende Artikel wird der Seite in dem Feld anr übergeben.

hier der komplette code für ergebnis.php

[php:1:59cbead478]<?
$nr = $HTTP_POST_VARS['anr']; // hier wird die übergebene Artikel Nr. gespeichert.

@include("artikel.php");
?>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Artikel Nr.</td>
<td>Name</td>
<td>Preis</td>
<td>Auf Lager</td>
</tr>
<?
if($nr == "all") { // Wenn all eingegeben wurde, sollen alle Artikel ausgegeben werden.
for($i = 0;$i<count($artikel);$i+=4) {
echo("<tr>\n");
echo("<td>");echo($artikel[$i]);echo("</td>\n");
echo("<td>");echo($artikel[$i+1]);echo("</td>\n");
echo("<td>");echo($artikel[$i+2]);echo("</td>\n");
echo("<td>");echo($artikel[$i+3]);echo("</td>\n");
echo("</tr>\n");
}
}
else {
for($i = 0;$i<count($artikel);$i+=4) {
if($artikel[$i]!=$nr) continue; // Überprüfen ob die übergebene Artikel Nr.
// mit der Nr. aus der "Datenbank" übereinstimmt.
// Nein, dann weiter zum nächsten Artikel.
echo("<tr>\n");
echo("<td>");echo($artikel[$i]);echo("</td>\n");
echo("<td>");echo($artikel[$i+1]);echo("</td>\n");
echo("<td>");echo($artikel[$i+2]);echo("</td>\n");
echo("<td>");echo($artikel[$i+3]);echo("</td>\n");
echo("</tr>\n");
break; // Schleife abbrechen, da die Nummer gefunden wurde und die Nummer
// nur einmal vorkommen kann
}
}
?>
</table>


<form action="artikelsuche.html" method="get"><input type="submit" name="suchen" value="Neue Suchen"></form>
</body>
[/php:1:59cbead478]

Hier noch die Seite die ergebnis.php aufruft (artikelsuche.html):
Code:
<body>
 <form action="ergebnis.php" method="post">
  Artikel Nr. (all f&uuml;r alle):
  <input type="text" name="anr">
  <input type="submit" name="suchen" value="Suchen">
 </form>
</body>

So, das war eine etwas ausführlichere antwort als sonst, hoffe damit ist auch anderen mit vergleichbaren problemen geholfen

feyyaz

PS: in den beispielen lasse ich immer die <html>, <title>, usw Tags weg. ist standart und sollte jeder ohne weiters selbst hinzufügen können. Ausser artikel.php, die bleibt wie sie ist.
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben