CSV auslesen und wiedergeben

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

  • CSV auslesen und wiedergeben

    Hallo ich habe folgendes script für mich angepasst:
    PHP-Code:
      <?php
    $row 
    1;
    $handle fopen ("../anmeldung/anmeldungen.csv","r");
    while ( (
    $data fgetcsv ($handle1000",")) !== FALSE ) {
        
    $num count ($data);
        for (
    $c=0$c $num$c++) {
            print 
    '- ';
            print 
    $data[$c] . "<br>\n";
        }
    }
    fclose ($handle);
    ?>
    nun meine Frage, wie schaffe ich es, dass die daten erst ab dem zweiten Datensatz beginnen und nur die 2. und 3. Spalte einfügt wird?
    vielen dank für eure Hilfe

    MFG DeeKayBerlin

  • #2
    fgetcsv() liest immer genau eine Zeile. Danach steht der interne Pointer auf der nächsten.
    Wenn du mit der ersten Zeile nichts anfangen möchtest, musst du sie dennoch lesen ... und eben nichts damit machen. Also einmal fgetcsv() vor der Schleife.

    Was die Ausgabe angeht: Du iterierst mit der for-Schleife über die Spalten. Wenn du das nicht (mehr) willst, dann mach es eben nicht sondern gib gezielt die gewünschten Spalten (Indizes in $data) aus.

    Darauf wärst du auch allein gekommen, wenn du 5 Minuten länger nachgedacht hättest.

    Kommentar


    • #3
      aber das wäre ja dann nur der 2. und 3. datensatz, aber ich möchte von jedem datensatz der in der datei vorhanden ist nur den 2. und 3. wert anezigen.
      Z.B.
      1;2;3;4;5;
      a;b;c;d;e;
      f;g;h;i;j;

      nun möchte ich nur b,c und g,h ausgeben!

      Kommentar


      • #4
        explode() hilft dir.

        Grüße
        Nieder mit der Camel Case-Konvention

        Kommentar


        • #5
          Re: CSV auslesen und wiedergeben

          Dann gib halt nur die passenden Zeilen aus:
          PHP-Code:
          print '- ';
          print 
          $data[2] . "<br>\n";
          print 
          $data[3] . "<br>\n"
          Wo ist das Problem?

          explode() hilft dir.
          Nicht wirklich!

          Kommentar


          • #6
            Re: Re: CSV auslesen und wiedergeben

            Original geschrieben von PHP-Desaster
            Dann gib halt nur die passenden Zeilen aus:
            PHP-Code:
            print '- ';
            print 
            $data[2] . "<br>\n";
            print 
            $data[3] . "<br>\n"
            Wo ist das Problem?

            Nicht wirklich!

            doch wirklich... es wird hier von positionen INNERHALB eine zeile gesprochen, nicht von ganzen zeilen...

            PHP-Code:
            $ausgabe explode(";",$data[$x]);
            echo 
            $ausgabe[1]." ".$ausgabe[2]."<br />"
            **********
            arkos
            **********

            Kommentar


            • #7
              Re: Re: Re: CSV auslesen und wiedergeben

              Original geschrieben von arkos
              doch wirklich...
              .. nein, eben doch nicht wirklich, weil fgetcsv() das explode() schon vorweg nimmt, und die Zeile als Array zurück gibt.
              EDIT:

              @deekayberlin
              Du musst dich natürlich entscheiden, ob deine Daten mit Komma getrennt sind, wie in deinem ersten Bespiel, oder mit Semikolon wie im zweiten

              Zuletzt geändert von H2O; 07.05.2008, 16:23.
              Gruss
              H2O

              Kommentar


              • #8
                Re: Re: Re: CSV auslesen und wiedergeben

                doch wirklich... es wird hier von positionen INNERHALB eine zeile gesprochen, nicht von ganzen zeilen...
                Und was macht dann fgetcsv deiner Meinung nach?

                Kommentar


                • #9
                  Re: Re: Re: Re: CSV auslesen und wiedergeben

                  Original geschrieben von PHP-Desaster
                  Und was macht dann fgetcsv deiner Meinung nach?
                  darf ich meine äußerung auf das wetter schieben... man is das heiss hier
                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    also ich habe soweit das was ich haben will, nur das problem ist, dass die datensätze in 11-facher ausführung ausgegeben werden. ich glaube das liegt an der for-zeile, jedoch keine ahnung warum.
                    könnt ihr mir da noch helfen??
                    hier mein code den ich bis jetzt habe
                    PHP-Code:
                    $file fopen ('../anmeldung/anmeldungen.csv','r');
                    $data fgetcsv ($file1000';');
                    while ( (
                    $data fgetcsv ($file1000';')) !== FALSE ) {
                        
                    $num count ($data);
                        for (
                    $c=0$c $num$c++) {
                            print 
                    '- ';
                            print 
                    $data[1] . '<br>';
                            print 
                    $data[2] . ' Team(s)<br>';
                        }
                    }
                    fclose ($file); 

                    Kommentar


                    • #11
                      Die for-Schleife benötigst du jetzt natürlich nicht mehr, du sagst doch schon, dass du nur die Spalten 1 und 2 benötigst!

                      Kommentar


                      • #12
                        also ich habe soweit das was ich haben will, nur das problem ist, dass die datensätze in 11-facher ausführung ausgegeben werden
                        Wundert dich das wirklich?? Die for-Schleife ist so was von überflüssig wenn du direkt auf die Werte zugreifen willst. Das folgende müsste reichen...
                        PHP-Code:
                        while ( ($data fgetcsv ($file1000';')) !== FALSE )         
                          print 
                        '- ';
                          print 
                        $data[1] . '<br>';
                          print 
                        $data[2] . ' Team(s)<br>';

                        Ansonsten wirst du pro Zeile count($data) mal Ausgaben der gleichen Daten erhalten
                        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


                        • #13
                          Dir ist offensichtlich nicht klar, was dein Script überhaupt macht. Die while-Schleife wird für jede Zeile ausgeführt. In der while-Schleife wird die for-Schleife für jede Spalte der aktuellen Zeile ausgeführt.
                          Du brauchst die for-Schleife überhaupt nicht mehr. Du willst ja gar nicht mehr jede Spalte ausgeben.
                          PHP-Code:
                          $file fopen ('../anmeldung/anmeldungen.csv','r');
                          fgetcsv ($file1000';');
                          while ( (
                          $data fgetcsv ($file1000';')) !== FALSE ) {
                              print 
                          $data[1] .' - '$data[2] .' Team(s)<br>';
                          }
                          fclose ($file); 

                          Kommentar

                          Lädt...
                          X