elBee: CSV-Datei in HTML-Tabelle

Hallo,

ich habe hier ein PHP-Script, dass mir eine CSV-Datei (bands.csv)
in einer HTMl-Tabelle ausgibt. Ich habe nun das Problem, dass ich die Spalte B (in der eine Link hinterlegt wird) nicht ausgegeben werden
soll, dafür soll der Text (Bandname) in Spalte A als Link fungieren.

Hier mal das PHP-Script:

<?php

$filename = "bands.csv"; //here's the filename

$id = fopen($filename, "r"); //open the file
while ($data = fgetcsv($id, filesize($filename),";")) //start a loop
$table[] = $data; //put each line into its own entry in the $table array
fclose($id); //close file

echo "<table>\n";

foreach($table as $row)
{
echo "<tr>";
   foreach($row as $data)
   echo "<td>$data</td>";
echo "</tr>\n";
}
echo "</table>\n";
?>

Die Ausgabe sieht folgendermaßen aus:

SPALTE A   | SPALTE B                | SPALTE C     | SPALTE E
BAND1      | http://www.beispiel.de  | Stuttgart    | Rock
BAND2      | keine                   | Hamburg      | Metal
BAND3      | http://www.beispiel.de  | Berlin       | Crunch
etc...

Kann mir hier jemand helfen, wie ich das am blödesten mache?!?

Viele Grüße
elBee

  1. echo $begrüßung;

    Kann mir hier jemand helfen, wie ich das am blödesten mache?!?

    Dafür gibt es viele Möglichkeiten. Die blödeste davon kenne ich nicht.
    Ich hätte aber einen Vorschlag, wie du dein Ziel erreichen könntest: Nimm statt der foreach($row...) eine for-Schleife, die du von 0 bis count($row) laufen lässt. Dann kannst du in Abhängigkeit von der Spaltennummer deine Spalten formatieren/ausgeben/unterdrücken.

    echo "$verabschiedung $name";

    1. Danke, jetzt bin ich erstmal nach einer Schachtel Zigaretten und einigen toten Synapsen weitergekommen :) und habe das Problem nun
      so gelöst:

      <?php

      $filename = "bands.csv"; //Datei zu öffnen

      $id = fopen($filename, "r"); //Datei öffnen
      while ($data = fgetcsv($id, filesize($filename),";")) //Starte Schleife
      $table[] = $data; //Jede Zeile wird in ein Array geschrieben
      $ArrayLength = count($table);
      fclose($id); //Schließt Datei

      echo "<font size=2>";
      echo "<br>";
      echo "<table border=1 width=600>";

      for ($i = 0; $i < $ArrayLength; $i++){

      $url="<a href"".$table[$i][1]."" target="_new">".$table[$i][0]."</a>";

      echo "<td>";
      echo $url;
      echo "</td>";

      echo "<td>";
      echo ( $table[$i][2] );
      echo "</td>";

      echo "<td>";
      echo ( $table[$i][3] );
      echo "</td>";

      echo "</tr>";
      }
      echo "</table>";
      ?>

      Aber genau jetzt habe ich ein erneutes Problem:
      In der Ausgabe erhalte ich keinen Link...

      table[0][0] gibt mir den Namen aus
      table[0][1] die URL

      Nun habe ich das folgendermaßen zusammengefasst:

      $url="<a href"".$table[$i][1]."" target="_new">".$table[$i][0]."</a>";

      echo "<td>";
      echo $url;
      echo "</td>";

      Bitte nochmals um Hilfe...
      Danke + Gruss
      elBee

      1. Tag elBee.

        table[0][0] gibt mir den Namen aus
        table[0][1] die URL

        Da stehen also die korrekten Werte drin. Wie sieht denn der Quelltext aus, der beim Browser ankommt? Übermittelst du auch den korrekten Content-type? Und schließlich: Gibt es irgendwelche Fehlermeldungen oder Warnungen (siehe error_reporting)?

        Siechfred

        1. Hallo,

          also Errors habe ich keine erhalten, es stand halr nur die
          URL als reiner Text da. Ich habe das Problem aber nun folgendermaßen
          gelöst:

          echo <a href="".($table[$i][1])."" target=_new>".($table[$i][0])."</a>";

          nun gehts, aber trotzdem danke...

          Grüße
          elBee

          Tag elBee.

          table[0][0] gibt mir den Namen aus
          table[0][1] die URL

          Da stehen also die korrekten Werte drin. Wie sieht denn der Quelltext aus, der beim Browser ankommt? Übermittelst du auch den korrekten Content-type? Und schließlich: Gibt es irgendwelche Fehlermeldungen oder Warnungen (siehe error_reporting)?

          Siechfred