Problem mit for Schleifen und array

supercat1510

Erfahrenes Mitglied
Hallo.

Ich möchte Daten die sich in einem Array befinden in einer Tabelle mit 3 Zeilen und 5 Spalten auslesen.

Die Ausgabe der Tabelle funktioniert einwandfrei, auch wenn man $x++ als String ausliest steht in der Tabelle dann die Zahlen 0-14 so wie sie sollen.

Sobald ich jedoch mein Array hinzufüge erscheint 15x dasselbe Bild. Weiß jemand dafür eine Lösung?

Edit Array:
PHP:
$open = $_GET['open']; // Ein Verzeichnis von einem vorherigen Link
$verz = "../../bilder/";
$rootl = "http://supercat1510/bilder/";

while($file = readdir($verz)){

  if($file != '.' && $file != '..'){

    if($open != ""){
       $file2 = $open.'/'.$file;
    } else {
       $file2 = $file;
    }

           $filebild = explode(".", $file);
           if($filebild[1] == "jpg" || $filebild[1] == "gif" || $filebild[1] == "png"){
               $info  = getimagesize($rootl.$file2);
               $breit = $info[0];
               $hoch  = $info[1];

$anzeige[] = '<a href="?link=pictures2&action=looking&open='.$open.'/'.$file.'&m=2"><img src="thumb.php?bild='.$rootl.$open.'/'.$file.'" alt="'.$breit.'" border="0" width="80" height="80"></a> ';

           }
  }
}//Ende while

PHP:
$anzeige = array(...Zur verdeutlichung abgekürzt....);
$picspalten = "15";

echo '<table align="center" class="pic" bgcolor="">';

    for($zeile=1; $zeile<=3; $zeile++){
        echo "<tr>\n";
        for($spalte=1; $spalte<=$picspalten; $spalte++){
             $x=0;
             $x++;
        echo "<td>";
        echo $anzeige[$x];
        echo "</td>\n";

        }//Ende spalte
        echo "</tr>\n";
   }//Ende Zeile
echo "</table>\n";
 
Zuletzt bearbeitet:
Zeig mal bitte was bei:
PHP:
echo '<pre>';
var_dump( $anzeige );
rauskommt.

Denn:

zur Verdeutlichung wäre es gut zu sehen, wie das Array überhaupt aussieht ;)

Bei var_dump kommt das:

PHP:
array(28) {
  [0]=>
  string(231) " "
  [1]=>
  string(234) " "
  [2]=>
  string(231) " "
  [3]=>
  string(234) " "
  [4]=>
  string(231) " "
  [5]=>
  string(234) " "
  [6]=>
  string(231) " "
  [7]=>
  string(234) " "
  [8]=>
  string(231) " "
  [9]=>
  string(234) " "
  [10]=>
  string(231) " "
  [11]=>
  string(234) " "
  [12]=>
  string(231) " "
  [13]=>
  string(234) " "
  [14]=>
  string(231) " "
  [15]=>
  string(234) " "
  [16]=>
  string(231) " "
  [17]=>
  string(234) " "
  [18]=>
  string(231) " "
  [19]=>
  string(234) " "
  [20]=>
  string(231) " "
  [21]=>
  string(234) " "
  [22]=>
  string(231) " "
  [23]=>
  string(234) " "
  [24]=>
  string(231) "  "
  [25]=>
  string(234) " "
  [26]=>
  string(231) " "
  [27]=>
  string(234) " "
}
 
Jetzt seh ichs:
PHP:
        for($spalte=1; $spalte<=$picspalten; $spalte++){
             $x=0;
             $x++;

Du setzt $x bei jedem Durchlauf wieder auf 0.

Nimm das $x = 0 aus den Schleifen raus.

Dann sollte das funktionieren.
 
Und wie bekomm ich das Array dann ausgelesen?

Weil das
PHP:
echo $anzeige[$x];
fällt ja dann das $x auch weg - wo krieg ich dann den wert her? Wenn ich frei lasse gibt er nen Error aus - wenn ichs [$x] ganz weg mache nur das Wort "Array"
 
Wieso fällt das $x weg?

PHP:
echo '<table align="center" class="pic" bgcolor="">';
$x = 0;
    for($zeile=1; $zeile<=3; $zeile++){
        echo "<tr>\n";
        for($spalte=1; $spalte<=$picspalten; $spalte++){

             $x++;
        echo "<td>";
        echo $anzeige[$x];
        echo "</td>\n";

        }//Ende spalte
        echo "</tr>\n";
   }//Ende Zeile
echo "</table>\n";

Das funktioniert nicht?
 
Ach so war das meint - dachte ganz raus.

Ja, das funktioniert - aber wie macht mans wenn er z.B. auf Seite 2 mit 16 weitermachen soll?
 
Hab jetz nommal bißchen rumgespielt und bin jetz auf das gekommen:

PHP:
echo '<table align="center" class="pic" bgcolor="">';
#echo '<pre>';
#var_dump( $anzeige );
    for($zeile=1; $zeile<=$zeilenanzahl; $zeile++){
        echo "<tr>\n";
        for($spalte=1; $spalte<=$picspalten; $spalte++){
            for($v=$picspalten-1;$v>=0;$v--){
            if($page == "" || $page == "1"){
              $spalte=($zeile*$picspalten)-$v;
            } else {
              $spalte=($zeile*$picspalten)-$v+$proseite;
            }
        echo "<td>";
        echo $anzeige[$spalte];
        echo "</td>\n";
             }

        }//Ende spalte
        echo "</tr>\n";
   }//Ende Zeile
echo "</table>\n";

Zwar bißchen mehr Code - aber funktioniert.
Meine Blätterfunktion ansich hab ich schon funktionierend, ging halt nur darum auf Seite 2 mit 16, auf Seite 3 mit 31 etc zu beginnen.
 
Zurück