tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
481
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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:

    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 möchte nur die Einträge auslesen, die als $einteilung ein "g" haben.
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    = ist ein Zuweisungsoperator, kein Vergleichsoperator

    Code :
    1
    
    if($einteilung="g")
    ...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.
     

  3. #3
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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?
     

  5. #5
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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 &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus (Premiere)|-||-|g
    Mo|-|31.01.05|-|20.00|-| Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
    Do|-|03.02.05|-|20.00|-|Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
    Mo|-|07.02.05|-|20.00|-| Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
    Fr|-|11.02.05|-|20.00|-|Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
    Sa|-|19.02.05|-|20.00|-| Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|junges theater basel auf dem Kasernenareal (Premiere)|-||-|h
    Mo|-|21.02.05|-|20.00|-|Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|junges theater basel auf dem Kasernenareal|-||-|h
    Do|-|24.02.05|-|20.00|-| Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|junges theater basel auf dem Kasernenareal|-||-|h
    Fr|-|25.02.05|-|20.00|-|Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
    Mo|-|28.02.05|-|20.00|-| Fucking &Aring;m&aring;l|-|http://www.jungestheaterbasel.ch/_archiv/2005/fucking_amal/|-|Theater Basel, Schauspielhaus*|-||-|g
    Di|-|01.03.05|-|20.00|-|Fucking &Aring;m&aring;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:

    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");
    }
    ?>
    Meine Idee war folgendermassen:
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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:
    PHP-Code:

    if(trim($einteilung)=="g"
    .... und es sollte gutgehen.
     

  7. #7
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

Ähnliche Themen

  1. Bestimmte Zeilen aus Textdatei löschen
    Von olek im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 12.02.05, 10:37
  2. Bestimmte Zeilen auslesen
    Von pycak im Forum PHP
    Antworten: 5
    Letzter Beitrag: 07.02.05, 22:39
  3. Bestimmte Zeilen einer Textdatei löschen
    Von dragonlord im Forum PHP
    Antworten: 8
    Letzter Beitrag: 03.02.05, 22:17
  4. Nur bestimmte Zeilen auslesen
    Von rikro im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 30.07.04, 14:09
  5. Aus Textdatei nur bestimmte Zeilen auslesen?
    Von Extremniki im Forum PHP
    Antworten: 2
    Letzter Beitrag: 10.11.02, 16:44