probleme mit arrays

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

  • probleme mit arrays

    Hi, ich habe folgende csv datei:

    rubrik,titel,code
    TOP10,The Tide Is High,TIDEISHI
    TOP10,Asereje/The Ketchup Song,ASEREJE
    TOP10,Herz Aus Glas,HERZAUSG
    TOP10,Cleaning Out My Closet,CLEANING
    TOP10,Complicated,COMPLICA
    TOP10,Black Suits Coming (Nod Ya Head),BLACKSUI
    TOP10,Mensch,MENSCH
    TOP10,Round Round,ROUNDROU
    TOP10,Get Over You,GETOVERY
    TOP10,Dreamer,DREAMER
    NEW,Get Over You,GETOVERY
    NEW,Black Suits Coming,BLACKSUI

    Diese möchte ich einlesen und als tabelle ausgeben in HTML. Zunächst kein Problem. Zumindest unter Linux Apache. Unter Windows IIS erhalte ich folgendes Ergebnis:

    Notice: Undefined offset: 0 in D:\Kunden\o2_php\o2_nokia\global_pages\rt\csv_show_F1.mod.php on line 29

    Das Auslesen erfolgt folgender massen:

    Ich schreibe in eine Variable $data alle csv daten. Dann nehme ich die variable $filtered und schreibe nur noch alle daten rein, wo die rubrik=TOP10 ist. Das sind die beiden dateien, welche in eine hauptdatei included werden:

    datei 1 liest komplettes csv in $data:
    PHP-Code:
    <?


    # NEW MODULE CSV to array


    // opens the file at row 1
    $row = 1;
    $fp = fopen ($MOD_src_path.$MOD_src,"r");

    // reading data

    $counter = 0;

    while ($srccsv = fgetcsv ($fp, 1000, ",")) {

        $num = count ($srccsv);
        
        //generating rubrik for e.g. $data[1][rubrik] by reading the first line
        if ($counter == 0 ){
                for ($c=0; $c < $num; $c++) {
                $format[$c] = $srccsv[$c];
                //TEST echo $format[$c];
                }
        }
        else {
        //generating an array with all data from csv in the structure echo $data[0][rubrik]="sport";
            for ($c=0; $c < $num; $c++) {
                    $data[$counter][$format[$c]] = $srccsv[$c];
                    
                    //TEST 
                    echo "<br>".$format[$c].$counter."-->".$data[$counter][$format[$c]];
            }
        }
        
    //TEST echo"format hat:".count($format);
    //TEST print_r($format);
        
    // This is the structure which is generated
    //$data[x][rubrik] = "....2";
    //$data[x][name] = "....2";
    //$data[x][code] = "....2";
    //$data[x][...] = "....2";

        $counter++;
    }
    fclose ($fp);

            //TEST 
            //print_r($data);
            //$test = count($data); echo $test; 
    global $data;
    global $format;
    # END MODULE

            
    ?>
    dies ist die ausgabe, welche vorher noch nur die rubrik=TOP10 in die variable $filtered schreibt:

    PHP-Code:
    <?

    # PART1 Filter a special one
        
    // Filter "$search" "$in" of CSV "$data"

      $search = "TOP10";
      $in = "rubrik";
      //$filtered = NULL;
      $show_rows = "";
      $more = "init.php?settings=klingel_all.inc.php&search=".$search; //link to full data page
       
     /*    
      function csvFilter($filter) {
          global $search, $in;
        return ($filter[$in] == $search);
      }

      //echo "Ergebnis :\n";
      $filtered = array_filter($data, 'csvFilter'); 
      
      
     //TEST  print_r($filtered);
    */

     //This is the filter method to be used if php under 4.03 as not supporting array_filter argument
     $number = 0;
    for ($c=1; $c < count($data); $c++){
            if($search == $data[$c][$in]){
            
                    for ($b=0; $b < count($format); $b++) { //$ format contains rubrik, name, code, etc.
                    $filtered[$number][$format[$b]] = $data[$c][$format[$b]]; 
                    //extract "$search $in" | $c-1 as first row is CSVstructure
                    
                    //TEST 
                    echo "<br>".$format[$b].$number."-->".$filtered[$number][$format[$b]];
                    
                    }
            $number++;
            }
            //TEST echo "Found ".$filtered[$c-1][$in]."<br>";
            //TEST elseif($search != $data[$c][$in]){echo "No item found at ".$c." as data is ".$data[$c][$in]."<br>";}
    }    
            //TEST print_r($filtered);
            //TEST echo "Size ".count($filtered)."<br>";
            
            //TEST echo"format hat:".count($format);
            //TEST print_r($format);


    # NEW MODULE View

    # View filtered from mod csv_filter.php

        echo"<table border=0 width=100% cellspacing=0 cellpadding=2>";
        echo "<tr><td colspan=".count($format).">".$search."</td></tr>";
        //generating <td>
        
        if ($show_rows == ""){ //checks if you want to show less or all data in filtered
        $show_rows = count($filtered);
        $show_more = "";
        }
        else{
        $show_more = "<a class=linklist href=\"".$more."\"><img src=\"http://www.o2online.de/images/o2/linklist_arrow_orange.gif\" width=\"9\" height=\"10\" border=\"0\" alt=\"mehr ...\"> weitere</a>";
        }
        
        
        //View different colors for each table row        

    $colorpar=1; //selection parameter for table row color parameter 1/0
        for ($c=0; $c < $show_rows ; $c++) {
            
        //selects the table color
        if ($colorpar==0){    
        echo "<tr bgcolor=#ffffff>\n";
        $colorpar=1;
        }
        else {
        echo "<tr bgcolor=#EBF7F7>\n";
        $colorpar=0;
        }

        for ($b=1; $b < count($format); $b++) { 
        //$ format contains rubrik, name, code, etc. HERE YOU CAN MINIMISE by getting $b started as 1 etc.
                
           if ($b == 2){
            echo "<td class=txt>"."<a href=\"".$MOD_src_path.strtolower($MOD_img.$filtered[$c][$format[$b]]).".wav\">"."Play</a></td>\n";
            echo "<td class=\"CopyBlue\">".$filtered[$c][$format[$b]]."</td>\n";
            }
            else {
            echo "<td class=\"CopyBlue\">".$filtered[$c][$format[$b]]."</td>\n";
            }
                }
            
        echo"</tr>";
        }
        if ($show_more != ""){ 
        echo "<tr><td colspan=".$b.">".$show_more."</td></tr>";
        }
        
         echo"</table>";
        
        
        
        ?>
    Am Bildschirm erfolgt folgendes:

    rubrik1-->TOP10
    titel1-->The Tide Is High
    code1-->TIDEISHI
    rubrik2-->TOP10
    titel2-->Asereje/The Ketchup Song
    code2-->ASEREJE
    rubrik3-->TOP10
    titel3-->Herz Aus Glas
    code3-->HERZAUSG
    rubrik4-->TOP10
    titel4-->Cleaning Out My Closet
    code4-->CLEANING
    rubrik5-->TOP10
    titel5-->Complicated
    code5-->COMPLICA
    rubrik6-->TOP10
    titel6-->Black Suits Coming (Nod Ya Head)
    code6-->BLACKSUI
    rubrik7-->TOP10
    titel7-->Mensch
    code7-->MENSCH
    rubrik8-->TOP10
    titel8-->Round Round
    code8-->ROUNDROU
    rubrik9-->TOP10
    titel9-->Get Over You
    code9-->GETOVERY
    rubrik10-->TOP10
    titel10-->Dreamer
    code10-->DREAMER
    rubrik11-->NEW
    titel11-->Get Over You
    code11-->GETOVERY
    rubrik12-->NEW
    titel12-->Black Suits Coming
    code12-->BLACKSUI

    Notice: Undefined offset: 0 in D:\Kunden\o2_php\o2_nokia\global_pages\rt\csv_show_F1.mod.php on line 29

    rubrik0-->TOP10
    titel0-->The Tide Is High
    code0-->TIDEISHI
    rubrik1-->TOP10
    titel1-->Asereje/The Ketchup Song
    code1-->ASEREJE
    rubrik2-->TOP10
    titel2-->Herz Aus Glas
    code2-->HERZAUSG
    rubrik3-->TOP10
    titel3-->Cleaning Out My Closet
    code3-->CLEANING
    rubrik4-->TOP10
    titel4-->Complicated
    code4-->COMPLICA
    rubrik5-->TOP10
    titel5-->Black Suits Coming (Nod Ya Head)
    code5-->BLACKSUI
    rubrik6-->TOP10
    titel6-->Mensch
    code6-->MENSCH
    rubrik7-->TOP10
    titel7-->Round Round
    code7-->ROUNDROU
    rubrik8-->TOP10
    titel8-->Get Over You
    code8-->GETOVERY
    rubrik9-->TOP10
    titel9-->Dreamer
    code9-->DREAMER

    Obiger teil ist $data, unterer teil inklusive fehler ist $filtered.
    Line 29 ist das script $filtered an der stelle
    if($search == $data[$c][$in]){
    Ich finde den unterschied zwischen windows IIS und meinem linux system nicht?

    Kann mir einer helfen??
    Zuletzt geändert von ; 22.01.2003, 12:51.
Lädt...
X