Mit for-Schleife mehrere Tabellenspalten

supercat1510

Erfahrenes Mitglied
Ich lese mit Hilfe eines Scripts den Inhalt eines Ordners als Links aus.
Allerdings stehen diese kurzen Links alle in nur einer Spalte.

Hier mein Code:
(Den Titel für den Link lese ich aus den Dateien aus)
PHP:
<?php
echo "<table>";

$ordner=$data;
$verz = opendir ($ordner);
while ($datei = readdir ($verz)) {
if($datei != "." AND $datei != ".."){
$datei_file = explode(".", $datei);
if($datei_file[1] == "dat"){
$file="".$ordner."".$datei_file[0].".".$datei_file[1]."";
//Dateien &ouml;ffnen - Titel auslesen
$eintrag=file($file);
$temp=count($eintrag)-1;
for($i=$temp;$i>=0;$i--){
$element=explode("~",$eintrag[$i]);
//Zusammensetzen des Array
echo "<tr>";
echo "<td><a href=\"?show1=".$file."\"><b>".$element[2]."</b></a></td>\n";
echo "</tr>";
//Ende Array
} //Ende for($i
}}}
closedir($verz);
echo "</table>";
?>

Meine Frage: Wie realisiere ich in diesem Code das zwei oder mehr Spalten erstellt werden?
 
Ist noch nicht ganz optimal, und ich habe es nicht getestet. Sollte aber so funktionieren. Man lässt einfach 2 Schleifen ineinander laufen :)

PHP:
// ausere schleife solang noch einträge da sind loopen
for($i=$temp;$i>=0; ){
echo "<TR>\n";
   // innere Schleife, geht immer x Einträge durch und schreibt sie hin
   for($col=$EintraegeProZeile;$col>=0;$col--){
   $i--;
   $element=explode("~",$eintrag[$i]);
   echo "<td><a href=\"?show1=".$file."\"><b>".$element[2]."</b></a></td>\n"; 
   if($i == 0) { break; }
   }
   // Rest mit leeren Zellen auffüllen
   while($col > 0){
      echo "<td>&nbsp;</td>\n";
      $col--;
   }
echo "</TR>";
}
 
Funktioniert leider nicht.

Er zeigt zwar mehrere Spalten an, aber:

1. Wenn ich 2 Spalten eingebe zeigt er 3
2. Er zeigt in jeder Zeile den selben Link wie in der 1ten
 
Das erste Problem dürfte wohl daran liegen, dass die Schleifen bei 0 anfangen bzw. bei 0 enden und wenn du dann von 2 auf- bzw. abzählst, bekommst du nunmal 3 Schrite - 3 Spalten.
Um das zu verhindern musst du lediglich die 0en der Zählschleifen in 1en umwandeln.
 
Zurück