Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] nur einzelne Spalten aus CSV-Datei auslesen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] nur einzelne Spalten aus CSV-Datei auslesen

    Hallo zusammen
    Ich möchte aus einer csv-Datei nur einzelne Spalten auslesen. Wie stell ich das an?
    Vielen Dank für eure Hilfe.

    Hier der Code:
    PHP-Code:
    <?php

    $datei 
    fopen("daten.csv""r");
    $daten fgetcsv($datei1000);
    while (
    $daten) {
      echo 
    implode(" – "$daten) . "<br>";
      
    $daten fgetcsv($datei1000);
    }
    ?>

  • #2
    Zitat von wonder Beitrag anzeigen
    Wie stell ich das an?
    In dem du nicht das Array per implode zu einem String umwandelst, sondern genau die Felder aus dem Array ausgibst, die du haben willst.
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      hm. Und wie ginge das? Könnte mir jemand vielleicht sogar einen Code angeben? Sorry, bin da wirklich Anfänger.

      Kommentar


      • #4
        http://php.net/manual/en/splfileobject.fgetcsv.php

        Example #2
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar


        • #5
          Danke!
          Aber wie kann ich nun meine Spalten bezeichnen? Im Example #2 haben sie ja für die Spalten
          PHP-Code:
          list($animal$class$legs
          Woher kommen diese Variablen?
          Wie kann ich umwandeln, die Spalte 1 aus dem CSV soll sein: $animal etc?

          Kommentar


          • #6
            list arrangiert ein Array als variablen.

            schau dir mal $row an ( mit var_dump )

            via $row['foo'] kannst du auf Array-Einträge zugreifen.

            P.S.: Sowas solltest du allerdings wissen bevor du hier posten gehst, Grundlagen und so.
            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

            Kommentar


            • #7
              Vielen Dank für die Hilfe

              Ich konnte es nun so lösen:
              PHP-Code:
              <?php
              $row 
              1;
              if ((
              $handle fopen("daten.csv""r")) !== FALSE) {
                  while ((
              $data fgetcsv($handle1000",")) !== FALSE) {
                     
              $num count($data);
                
                      echo 
              "<p>\n";
                   
              $row++;
                   
                 
                   echo  
              $data[36] . " " $data[7] . " " .$data[8] . " ".$data[9] . " ".$data[10] . " " .$data[11] . " ".$data[12] . " "." " .$data[35] . " ".$data[12] . " ";
                      }
               
                  
              fclose($handle);
              }
              ?>
              Nun habe ich aber noch das Problem, dass es die erste Zeile auch anzeigt. Obwohl zuoberst ja steht $row=1. Warum beginnt das Auslesen trotzdem bei Null?
              Sorry für die einfache Frage, aber ich konnte das Problem bis jetzt trotz 90 Minuten suchen nicht lösen.
              Danke für eure Hilfe!

              Kommentar


              • #8
                Du setzt $row auf 1 und in der Schleife inkrementierst du. Mehr tust du damit nicht. Erwartest du jetzt, dass PHP selbstständig herausfindet, was die Variable soll und dann auf einmal mit Zeile 2 anfängt zu lesen? Wenn Programmiersprachen das machen würde, würde es drüber und drunter gehen und keiner wüsste mehr, warum sein Programm auf einmal den Müll rausbringt obwohl er nur "Hello World" ausgeben soll.
                [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                Kommentar


                • #9
                  hm. Und wie muss ich es ändern?

                  Kommentar


                  • #10
                    Entweder rufst du einmal fgetcsv vor der Schleife auf und verwirfst das Ergebnis einfach, oder du prüfst in der Schleife auf $row == 1 und continue;'st wenn es zutrifft.
                    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                    Kommentar


                    • #11
                      Danke, nun funktioniert es!

                      Kommentar

                      Lädt...
                      X