Auslesen und Ausgeben einer CSV Datei

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

  • Auslesen und Ausgeben einer CSV Datei

    Hallo zusammen,

    ich habe mit Hilfe eines Tutorials ein kleines Script geschrieben, mit dem ich den Inhalt einer CSV Datei auslesen kann. Nach zahlosen Versuchen konnte ich jedoch nicht herausfinden, wie ich den heutigen Tag als Startspalte ermitteln kann. Die oberste Zeile enthält ein fortlaufendes Datum. Ich möchte gerne, dass immer die Spalte mit dem heutigen Datum als erste Spalte definiert wird, wo die Ausgabe startet.

    Also nochmal genauer:

    Die CSV Datei enthält 365 Spalten ( für ein ganzes Jahr ). Die oberste Zeile enthält das fortlaufende Datum, die Zeile(n) darunter andere Daten. Alles was ich will ist, dass immer das heutige Datum die erste Spalte bei der Ausgabe ist. Alle Tage also, die vorbei sind, sollen nicht angezeigt werden. Auf dem Bild die TAge vor dem 04.06.2007.

    Hier ein kleiner Screenshot:

    [img=http://img405.imageshack.us/img405/4277/statusqw3.th.jpg]

    Da ich über seehr bescheidene Programmierkenntnisse verfüge und mich erst in PHP einarbeite, bin ich für jeden Hinweis bzw. für jede Hilfe dankbar.

    Hier ist übrigens der Quellcode:
    PHP-Code:
    <?php
    $zeile
    =0;
    $bol=file_exists("uebersicht.csv");
    $datum=date("d.m.Y");
    $uhrzeit=date("H:i");
    $heute getdate();
    if(
    $bol){$datei=fopen("uebersicht.csv","r");
    if(
    $datei){print("<p>Status: XXY</p> Heute ist der: $datum, - $uhrzeit Uhr<br><br>");
    print(
    "<table border='1'>");
    $dateigroesse=filesize("uebersicht.csv");
    $data=fgetcsv($datei,$dateigroesse,";");
    while(
    $data!=false){
    print(
    "<tr>");
    $zeile++;
    print(
    '<td width="130">');
    print(
    "Datum");
    print(
    $zeile);
    print(
    "</td>");
    $spalten=count +19;
    for(
    $c=0;$c<$spalten;$c++){
    print(
    '<td width="130">');
    print(
    $data[$c]);
    print(
    "</td>");
    }
    print(
    "</tr>");
    $data=fgetcsv($datei,$dateigroesse,";");
    }
    fclose($datei);
    }
    }
    ?>
    Zuletzt geändert von daemondevir; 05.06.2007, 10:27.

  • #2
    Re: Auslesen und Ausgeben einer CSV Datei

    Original geschrieben von daemondevir
    Mit Zitat antworten
    lies die regeln.

    Kommentar


    • #3
      PHP-Code:
      $dat file('deineDatei.csv');
      foreach(
      $dat as $key=>$value){
        if(
      strpos($value,date('d.m.Y',time())) !== false){
          
      $dat array_slice($dat,$key);
          break;
        }

      so in der Art solltest du feststellen können, welche Zeile dem heutigen Datum entspricht. Sobald das Datum festgestellt wurde, zerlegt array_slice() das Array in den gewünschten Teil

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Vielen Dank, aber leider funktioniert der Codeschnipsel nicht. Ich habe versucht, ihn bei mehreren Stellen einzufügen - leider ohne Ergebnis.

        Kommentar


        • #5
          Und natürlich hast du
          1. den Dateinamen/Pfad an deine Gegebenheiten angepasst
          2. ein error_reporting(E_ALL) gemacht (bitte als erste Zeile des Codes)

          gemacht

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Original geschrieben von jahlives
            Und natürlich hast du
            1. den Dateinamen/Pfad an deine Gegebenheiten angepasst
            2. ein error_reporting(E_ALL) gemacht (bitte als erste Zeile des Codes)

            gemacht

            Gruss

            tobi
            Das habe ich. Der Code sieht jetzt so aus:

            PHP-Code:
            <?php
            error_reporting
            (E_ALL);
            $zeile=0;
            $bol=file_exists("uebersicht.csv");
            $datum=date("d.m.Y");
            $uhrzeit=date("H:i");
            $heute getdate(); 
            if(
            $bol){$datei=fopen("uebersicht.csv","r");
            if(
            $datei){print("<p>Status XXY</p> Heute ist der: $datum, - $uhrzeit Uhr<br><br>");
            print(
            "<table border='1'>");
            $dateigroesse=filesize("uebersicht.csv");

            $data=fgetcsv($datei,$dateigroesse,";");
            while(
            $data!=false){
            print(
            "<tr>");
            $zeile++;
            $spalten=count ($data);
            $dat file('uebersicht.csv');
            foreach(
            $dat as $key=>$value){
              if(
            strpos($value,date('d.m.Y',time())) !== false){
                
            $dat array_slice($dat,$key);
                break;
              }
            }
            for (
            $c=0;$c<$spalten;$c++)
            {
            print(
            '<td width="130">');
            print(
            $data[$c]);
            print(
            "</td>");
            }
            print(
            "</tr>");

            $data=fgetcsv($datei,$dateigroesse,";");
            }
            fclose($datei);
            }
            }
            ?>

            Kommentar


            • #7
              hey, so ganz ohne verstand kannst du noch lange probieren...
              was du da im internet an code gefunden hast, blickst du auch nicht durch?

              mal ganz langsam anfangen: peterkropff.de und tut.php-q.net helfen einzusteigen!

              Kommentar


              • #8
                Und wo greifst du auf $dat wieder zu ? Du versuchst die Ausgabe mit $data zu machen und $data !== $dat
                Zum Test mal ein
                PHP-Code:
                var_dump($dat); 
                gemacht ? Entspricht der Inhalt des Array in etwa deinen Erwartungen ?

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Original geschrieben von penizillin
                  hey, so ganz ohne verstand kannst du noch lange probieren...
                  was du da im internet an code gefunden hast, blickst du auch nicht durch?

                  mal ganz langsam anfangen: peterkropff.de und tut.php-q.net helfen einzusteigen!
                  Ich habe geschrieben dass ich Anfänger bin und dass ich gerade dabei bin, mich einzuarbeiten. Den Code, den ich "im Internet gefunden habe", habe ich aus einem Buch, dass ich mir extra gekauft habe. Leider ist es in dem Buch nicht so ausführlich erklärt. Sobald man mal ein kleines bisschen von den dort aufgeführten Beispielen abweicht, wars das. Es ersetzt halt nichts einen gescheiten Lehrer. Alle sagen sie, dass PHP einfach ist.... das sehe ich nicht so. Aber ist denn das ein Problem für euch Vollprofis?

                  Kommentar


                  • #10
                    deswegen auch die genannten seiten. dort gibt es beispiele zu hauf, einfach mal lesen, statt meckern.

                    Kommentar


                    • #11
                      Jetzt dumpe doch endlich mal die Variabel ($dat) ! Das nennt sich Debugging und sollte immer gemacht werden wenn etwas nicht funzt

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Original geschrieben von penizillin
                        deswegen auch die genannten seiten. dort gibt es beispiele zu hauf, einfach mal lesen, statt meckern.
                        Ich dich auch.
                        Übrigens meckere ich nicht. Es ist halt nur frustierend, wenn immer nur auf FAQ-Seiten usw. verwiesen wird. Ich habe schon alles mögliche Rumgefrickel mit dem Code probiert. So ist es also nicht. Ein symbolischer Klopfer auf den Hinterkopf ist manchmal hilfreicher.

                        @jahlives

                        Vielen Dank für deine Hilfe. Scheinbar verstehe ich doch ein kleines bisschen von meinem Code. Ich habe einiges geändert und es funzt. :-)

                        PHP-Code:
                        <?php
                        error_reporting
                        (E_ALL);
                        $zeile=0;
                        $bol=file_exists("uebersicht.csv");
                        $datum=date("d.m.Y");
                        $uhrzeit=date("H:i");
                        $heute getdate(); 
                        if(
                        $bol){$datei=fopen("uebersicht.csv","r");
                        if(
                        $datei){print("<p>Status XXY</p> Heute ist der: $datum, - $uhrzeit Uhr<br><br>");
                        print(
                        "<table border='1'>");
                        $dateigroesse=filesize("uebersicht.csv");

                        $data=fgetcsv($datei,$dateigroesse,";");
                        while(
                        $data!=false){
                        print(
                        "<tr>");
                        $zeile++;
                        $spalten=count ($data);
                        foreach(
                        $data as $key=>$value){
                          if(
                        strpos($value,date('d.m.Y',time())) !== false){
                            
                        $data array_slice($data,$key);
                            break;
                          }
                        }
                        for (
                        $c=0;$c<$spalten;$c++)
                        {
                        print(
                        '<td width="130">');
                        print(
                        $data[$c]);
                        print(
                        "</td>");
                        }
                        print(
                        "</tr>");

                        $data=fgetcsv($datei,$dateigroesse,";");
                        }
                        fclose($datei);
                        }
                        }
                        ?>

                        Kommentar


                        • #13
                          Naja, zu früh gefreut. Die erste Zeile wird berücksichtigt, leider aber nicht der Rest. Aber trotzdem vielen Dank für die Hilfe.

                          Kommentar

                          Lädt...
                          X