csv lieste auslesen -> objekt

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

  • csv lieste auslesen -> objekt

    Hallo

    ich habn problem mit dem hier

    der script sollte aus einer csv datei allso mit"|" getrennt

    ArtNr,
    u. ArtName z.B.

    da in dieser liste ca.4000 Zeilen sind
    habe ich vorgehabt dies mit Objekten irendwi zusammen zu schnippselln
    aber er meint:
    "
    Warning: fgetcsv(): supplied argument is not a valid File-Handle resource in C:\Apache\htdocs\wb\test_objekte_csv.php on line 22

    Warning: Invalid argument supplied for foreach() in C:\Apache\htdocs\wb\test_objekte_csv.php on line 24
    artieklNr
    ArtnAme
    "



    <?php
    $modus = 'r'; // modus -> r = lesen, r+ = lesen u. schreinen, w+ erstellen
    $path = 'C:/Apache/htdocs/wb/liste.csv';

    $fp = fopen($path, $modus);

    global $fp;

    class itemdb {
    var $z;
    var $csv;
    var $num;

    function getnum() {

    $this -> z = 0;
    $this -> num = 25; //----!!! 25 Zeilen in liste.csv
    }

    function readcsv($query){

    $this -> csv = fgetcsv($fp, 1000, "|");

    foreach ( $this -> csv as $k => $elem) {

    $this -> $k = $elem;
    }

    $this -> z++;
    }
    }

    class item extends itemdb {

    var $item_artnr;
    var $item_artname;
    var $item_hersteller;

    }
    $new_items = new item;

    $new_items -> getnum();



    while ($new_items->z < $new_items->num) {

    $new_items -> readcsv($fp);


    echo 'artieklNr'.$new_items -> $item_artnr.'<br>ArtnAme'.$new_items -> $item_artname.'<br>';

    }
    fclose($fp);
    ?>


    Zuletzt geändert von MichaM.; 14.11.2002, 19:48.

  • #2
    jetzt habe ich das mal leserlich gemacht.....

    PHP-Code:
    <?php

      
    /************************************************************************/

      
    $modus 'r'// modus -> r = lesen, r+ = lesen u. schreinen, w+ erstellen
      
    $path 'C:/Apache/htdocs/wb/liste.csv';

      
    /************************************************************************/

      
    $fp fopen($path$modus);
      global 
    $fp;

      
    /************************************************************************/
      
    class itemdb {

        var 
    $z;
        var 
    $csv;
        var 
    $num;

        function 
    getnum() {
          
    $this -> 0;
          
    $this -> num 25//----!!! 25 Zeilen in liste.csv
        
    }

        function 
    readcsv($query) {
          
    $this -> csv fgetcsv($fp1000"|");
          foreach ( 
    $this -> csv as $k => $elem) {
            
    $this -> $k $elem;
          }
          
    $this -> z++;
        }
      } 

      
    /************************************************************************/
      
    class item extends itemdb {

        var 
    $item_artnr;
        var 
    $item_artname;
        var 
    $item_hersteller;

      }

      
    /************************************************************************/

      
    $new_items = new item;

      
    $new_items -> getnum(); 

      while (
    $new_items->$new_items->num) {

        
    $new_items -> readcsv($fp);

        echo 
    'artieklNr'.$new_items -> $item_artnr.'<br>ArtnAme'.$new_items -> $item_artname.'<br>';

      }
        
      
    fclose($fp);
    ?>
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      muss der path nicht mit doppeltem backslash geschrieben werden?

      Code:
      $path = 'C:\\Apache\\htdocs\\wb\\liste.csv';
      hier auch noch was...
      http://www.php-resource.de/forum/sho...threadid=10945
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Propbier dein script doch mal aus direkt in deinem apache mit einem relativen pfad.

        Wenn es dann funktioniert, dann ist nur deine pfadangabe falsch.

        Also
        PHP-Code:
        $path 'C:/Apache/htdocs/wb/liste.csv'
        $path = 'wb/liste.csv';

        Ich glaube auch deine pfadangabe müsste C:\Apache\... sein.

        Kommentar


        • #5
          function readcsv($query) {
          Irgendetwas stimmt mit dieser Variable $query nicht. Leider checke ich deine funktion nicht, weil ich aus meinem csv file keine daten bekomme. Was sollte mit $query übergeben werden und in welche variable der folgenden zeilen?

          PHP-Code:
          function readcsv($query) {
                
          $this -> csv fgetcsv($fp1000"|");
                foreach ( 
          $this -> csv as $k => $elem) {
                  
          $this -> $k $elem
          Ich arbeite leider nicht mit funktionen. Bisher gab es dazu keinen anlass, deshalb bin ich nicht so fitt darin ;-)

          Deine Pfadangaben sollten richtig sein. Ich würde aber als Pfadangabe lieber relativ zu dieser datei ../../irgendwas/xxx.csv angeben.

          Kommentar


          • #6
            csv lieste auslesen -&gt; objekt

            Na das $fp -> geöffnete csv datei, die function steht normaler weiße z.B. in der dbclass.inc.php.
            Die function(script) müsst mehrere Updates auf der datenbank ausführen,
            aber ich habs nich hinbekommen???

            Ihrgendwas stimmt da net weiß nur net was.

            Ich muss objekte verwenden (oda??) da die csv datei ca. 20.000 einträge bis jetzt beinhaltet.

            Kommentar


            • #7
              also, ich habe weil ich ja die ganzen update functions etc nicht habe das $query durch $fp ersetzt.

              dann hat er mir tatsächlich eine schleife aufgerufen und mein beispiel csv eingelesen, allerdings in der ausgabe

              mein beispiel csv sieht folgendermassen aus:

              rubrik,titel,code,
              SPORT,HAND1,HAND2,
              SPORT,FOOTBKIT,FOOTBKIT,
              SPORT,LGDUDA,LGDUDA,

              PHP-Code:
              while ($new_items->$new_items->num) {

                  
              $new_items -> readcsv($fp);

                  echo 
              'artieklNr'.$new_items -> $item_artnr.'<br>ArtnAme'.$new_items -> $item_artname.'<br>';

                } 
              nichts gebracht.

              Dazu habe ich die csv abgespeichert und deine datei abgeändert auf
              PHP-Code:
              $modus 'r'// modus -> r = lesen, r+ = lesen u. schreinen, w+ erstellen
                
              $path = ../test/beispiel.csv'; 

              Leider. Deshalb vermute ich, dass der fehler hier
              PHP-Code:
              foreach ( $this -> csv as $k => $elem) {
                      
              $this -> $k $elem
              oder
              PHP-Code:
              while ($new_items->$new_items->num) {

                  
              $new_items -> readcsv($fp);

                  echo 
              'artieklNr'.$new_items -> $item_artnr.'<br>ArtnAme'.$new_items -> $item_artname.'<br>';

                } 
              liegt.

              Leider kann ich das aus zeitmangel nicht überprüfen. Du müsstest zum testen einfach einmal an verschiedenen stellen die verschiedenen variablen mit echo ausgeben, und dort, wo eine leer bleibt, den fehler weiter suchen.

              so sieht also mein testfile aus und dazu rufe ich obige bsp.csv auf:
              PHP-Code:
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

              <html>
              <head>
                  <title>Untitled</title>
              </head>

              <body>
              <?php

                
              /************************************************************************/

                
              $modus 'r'// modus -> r = lesen, r+ = lesen u. schreinen, w+ erstellen
                
              $path 'global_csv/2002-11-29_ol.csv';

                
              /************************************************************************/

                
              $fp fopen($path$modus);
                global 
              $fp;
                  
              //TEST echo $fp;
                /************************************************************************/
                
              class itemdb {

                  var 
              $z;
                  var 
              $csv;
                  var 
              $num;

                  function 
              getnum() {
                    
              $this -> 0;
                    
              $this -> num 25//----!!! 25 Zeilen in liste.csv
                  
              }

                  function 
              readcsv($fp) {
                      
              //TESTecho"test:$fp";
                    
              $this -> csv fgetcsv($fp1000",");
                    foreach ( 
              $this -> csv as $k => $elem) {
                      
              $this -> $k $elem;
                    }
                    
              $this -> z++;
                  }
                } 

                
              /************************************************************************/
                
              class item extends itemdb {

                  var 
              $item_artnr;
                  var 
              $item_artname;
                  var 
              $item_hersteller;

                }

                
              /************************************************************************/

                
              $new_items = new item;

                
              $new_items -> getnum(); 

                while (
              $new_items->$new_items->num) {

                  
              $new_items -> readcsv($fp);

                  echo 
              'artieklNr'.$new_items -> $item_artnr.'<br>ArtnAme'.$new_items -> $item_artname.'<br>';

                }
                  
                
              fclose($fp);
                
                
                
              ?>



              </body>
              </html>

              Kommentar


              • #8
                Ok, ich suche halt mal weiter ihrgendwann funtzt es ja vieleicht auch mal.

                aber schon korekt. Danke.

                Gruß Micha ;-)

                Kommentar

                Lädt...
                X