ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
481
481
EMPFEHLEN
-
Hallo zusammen
Ich bin schon seit einiger Zeit an diesem Problem und komme einfach nicht mehr weiter, vielleicht kann mir jemand von euch helfen.
Ich habe foldenden Quelltext:
Ich möchte nur die Einträge auslesen, die als $einteilung ein "g" haben.PHP-Code:<?php
$datei="../daten.txt";
// die Einträge auslesen &anzeigen
$inhalt = file($datei,"r");
$anzahl = count($inhalt);
for($i = 0; $i < $anzahl; $i++)
{
$eintrag = explode("|-|",$inhalt[$i]); //Inhalt zerteilen
// Variablen definieren
$tag = $eintrag[0];
$datum = $eintrag[1];
$zeit = $eintrag[2];
$stueck = $eintrag[3];
$link = $eintrag[4];
$ort = $eintrag[5];
$plaetze = $eintrag[6];
$einteilung = $eintrag[7];
if($einteilung="h"){
$show="<option>$tag $datum $zeit $stueck $ort</option>\n";
}
if($einteilung="g"){
$show="";
}
echo ("$show");
}
?>
Mit dieser Möglichkeit zeigt es mir alle Einträge an. Es muss doch möglich sein diese zu sortieren nach "g" und "h", oder nicht?
Vielen Dank für eure Hilfe, vielleicht ist es auch nur ein dummer Überlegungsfehler von mir, aber ich komme einfach nicht weiter.
Gruss Jonas
-
= ist ein Zuweisungsoperator, kein Vergleichsoperator
...ermittelt daher nicht, ob $einteilung den Wert "g" hat, sondern weist $einteilung den Wert "g" zu... wenn dies erfolgreich ist(ist es immer)... wird diese Bedingung weiterverfolgt.Code :1
if($einteilung="g")
-
Ja ich weiss, dass hatte ich bei copy paste noch vergessen zu ändern, , ist aber nicht der Fehler, mir werden immer noch alle Einträge angezeigt.
Ich habe jetzt if($eingabe=="g){} das sollte ja so gehen, oder nicht?
Gruss Jonas
-
Ich versteh zwar nicht, warum du beim copy&paste etwas ändern musst, wenn es richtig in deinem Skript stand... warum es nicht funktioniert, geht aus dem Geposteten auch nicht hervor...
nur dass da alles angezeigt wird, glaube ich nicht.
Das, was du hier gepostet hast, scheint nicht das zu sein, was du bei dir probierst.
Wie sieht denn so eine Zeile in "daten.txt" komplett aus?
-
Ich hatte es zuerst falsch geschrieben, dann aber gemerkt, dass die Vergleichsoperatoren falsch sind. Ich habe das Script zweimal und als es nach langem Versuchen und trotz den richtigen Vergleichsoperatoren immer noch nicht funktioniert hatte, wollte ich wieder zum Anfang zurück und kopierte den alten Inhalt vom zweiten Script. Da ich dort die Vergleichsoperatoren noch nicht geändert hatte ich sie also auch falsch kopiert. Somit hatte ich meinen Anfangsfehler noch einmal, das meinte ich mit copy&paste, sorry es ist spät und ich bin noch ein bisschen krank, muss mir jetzt wieder ein bisschen mehr Mühe geben, mich richtig auszudrücken.
Also zum Problem zurück:
Die Textdatei bei mir sieht folgendermassen aus:
Fr|-|28.01.05|-|20.00|-|Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus (Premiere)|-||-|g
Mo|-|31.01.05|-|20.00|-| Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
Do|-|03.02.05|-|20.00|-|Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
Mo|-|07.02.05|-|20.00|-| Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
Fr|-|11.02.05|-|20.00|-|Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
Sa|-|19.02.05|-|20.00|-| Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|junges theater basel auf dem Kasernenareal (Premiere)|-||-|h
Mo|-|21.02.05|-|20.00|-|Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|junges theater basel auf dem Kasernenareal|-||-|h
Do|-|24.02.05|-|20.00|-| Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|junges theater basel auf dem Kasernenareal|-||-|h
Fr|-|25.02.05|-|20.00|-|Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
Mo|-|28.02.05|-|20.00|-| Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
Di|-|01.03.05|-|20.00|-|Fucking Åmål|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|junges theater basel auf dem Kasernenareal|-||-|h
Mi|-|02.03.05|-|20.00|-|Sweet Hamlet|-|http://www.jungestheaterbasel.ch/_archiv/1999/sweet_hamlet/|-|in der Villa auf der Wettsteinallee 40, Kleinbasel|-||-|h
Hier noch einmal den Script dazu:
Meine Idee war folgendermassen:PHP-Code:<?php
$datei="../daten.txt";
// die Einträge auslesen &anzeigen
$inhalt = file($datei,"r");
$anzahl = count($inhalt);
for($i = 0; $i < $anzahl; $i++)
{
$eintrag = explode("|-|",$inhalt[$i]); //Inhalt zerteilen
// Variablen definieren
$tag = $eintrag[0];
$datum = $eintrag[1];
$zeit = $eintrag[2];
$stueck = $eintrag[3];
$link = $eintrag[4];
$ort = $eintrag[5];
$plaetze = $eintrag[6];
$einteilung = $eintrag[7];
if($einteilung=="h"){
$show="<option>$tag $datum $zeit $stueck $ort</option>\n";
}
if($einteilung=="g"){
$show="";
}
echo ("$show");
}
?>
Ich bin daran bei einer Homepage von einem Theater ein Online-Bestellformular zu programmieren womit man Tickets reservieren kann. Ich möchte in einem select-Feld immer die Aufführungen hineinladen, die zur Zeit gerade im Spielplan sind (Daten aus der Textdatei). Im Spielplan sind jedoch auch noch Daten von Gastspielen auswärts. Für diese kann man beim Theater selbst keine Tickets reservieren. Darum möchte ich, dass nur die Aufführungen im select-Feld gezeigt werden, für welche auch Tickets reserviert werden können. Dadurch habe ich noch jeweils am Ende der Zeilen ein "g" für Gastspiele oder ein "h" für Heimspiele hingeschrieben, damit ich die Zeilen sortieren kann und im select Feld auch nur die "Heimspiele" angezeigt werden.
So ich hoffe ich konnte mein Problem genug konkret beschreiben und hoffe sehr, dass mir jemand helfen kann dabei.
Vielen Dank
Gruss
Jonas Schmid
-
Ich sehe zwar immer noch nicht, warum dort alles ausgegeben werden sollte... ich kann dir aber sagen, warum deine Prüfung nicht funktioniert(es dürfte eigentlich garnichts gefunden werden)
Auch wenn es so aussieht, dass am Ende der Zeile ein Buchstabe steht.... nach dem Buchstaben kommt noch was: der Zeilenumbruch!
Der ist mit in dem letzten Arrayelement.... wodurch die Prüfung fehlschlägt.
Lösung:
.... und es sollte gutgehen.PHP-Code:
if(trim($einteilung)=="g")
-
Ja das sah ich eben auch nicht, darum hatte es mich so verwirrt. Ich sass vor meinem Bildschirm und dachte wirklich, dass ich bald anfange zu spinnen. Alles spielte verrückt.
Jetzt mit dem trim funktionierts, vielen Dank, das mit dem Zeilenumbruch am Ende der Zeile vergesse ich manchmal einfach, so dumm.
Also noch einmal danke für die Mühe.
Gruss Jonas
Ähnliche Themen
-
Bestimmte Zeilen aus Textdatei löschen
Von olek im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 12.02.05, 10:37 -
Bestimmte Zeilen auslesen
Von pycak im Forum PHPAntworten: 5Letzter Beitrag: 07.02.05, 22:39 -
Bestimmte Zeilen einer Textdatei löschen
Von dragonlord im Forum PHPAntworten: 8Letzter Beitrag: 03.02.05, 22:17 -
Nur bestimmte Zeilen auslesen
Von rikro im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 30.07.04, 14:09 -
Aus Textdatei nur bestimmte Zeilen auslesen?
Von Extremniki im Forum PHPAntworten: 2Letzter Beitrag: 10.11.02, 16:44





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren