kostenloser Webspace werbefrei: lima-city


Bilder aus ordner auslesen !! Problem mit ausgabe !!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    shoebox

    shoebox hat kostenlosen Webspace.

    High leutz

    Ich wusste nicht wie ich das thema nennen sollte.. hoffe habs halbwegs getroffen.
    Aaaaaaaaaaaaaalso ich m?chte alle Bilder aus einem Ordner auslesen und dann ausgeben lassen. Ich m?chte jedoch immernur 4 nebeneinander ausgeben lassen und den rest darunter.
    also z.B.

    1 2 3 4
    5 6 7 8

    Hier mein Code:
    $albumname = $_GET['album'];
    $pfad = "Alben/".$albumname;
    $open_dir = opendir($pfad);
    echo "<table border='0' width='300'><tr>";
    while($pic = readdir($open_dir))
    {
    	if(is_file($pfad."/".$pic))
    	{
    		echo "<td><a href='index.php?shot=diashow&album=".$albumname."&pic=".$pic."'><img src='".$pfad."/".$pic."' width='50' height='50' border='0'></a></td>";
    	}
    }
    echo "</tr></table>";
    $close_dir = closedir($open_dir);


    Hoffe ihr k?nnt mir fix helfen.. Thx im vorraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    du musst nach jedem vierten Bild einfach die n?chste Zeile beginnen.
    Das geht am besten mit einer for-Schleife und Modulo (%).

    Alles klar?

    mfg,
    hr
  4. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    Hi,

    du musst nach jedem vierten Bild einfach die n?chste Zeile beginnen.
    Das geht am besten mit einer for-Schleife und Modulo (%).

    Alles klar?

    mfg,
    hr


    Ich w?rde hier einfach in die while-Schleife eine zus?tzliche Variable $x einbringen, denn das Auslesen des Verzeichnisses mit der while-Schleife macht durchaus Sinn. Also quasi so:

    $albumname = $_GET['album'];
    $pfad = "Alben/".$albumname;
    $open_dir = opendir($pfad);
    echo "<table border='0' width='300'><tr>";
    $x = 0;
    while($pic = readdir($open_dir))
    {
        if(is_file($pfad."/".$pic))
        {
            $x++;
            echo "<td><a href='index.php?shot=diashow&album=".$albumname."&pic=".$pic."'><img src='".$pfad."/".$pic."' width='50' height='50' border='0'></a></td>";
            if ($x%4 == 0)
            {
                echo '</tr><tr>';
            }
        }
    }
    echo "</tr></table>";
    $close_dir = closedir($open_dir);
  5. Hi,

    leider geht das nicht wirklich, da ja nicht immer "bilderanzahl % 4 == 0" gilt.
    Deswegen m?sste man noch leere <td>-Zellen anzeigen.

    Vielleicht w?re das eine praktische L?sung:
    $images = array(); // Der array mit den Bildern
    $bpl = 4; // Bilder pro Linie
    
    print '<table border="1" cellspacing="0" cellpadding="4">';
    for ($i = 0; $i < round(count($images) / $bpl) * $bpl; $i++) {
      if ($i % $bpl == 0) print '<tr>';
      if ($i < count($images) - 1) {
       print '<td><img src="' . $images[$i] . '"></td>';
      } else {
       print '<td>&nbsp;</td>';
      }
      if ($i % $bpl == $bpl) print '</tr>';
    }
    print '</table>';


    ... so wird die Tabelle richtig und am einfachsten (glaube ich :biggrin:) erstellt.

    Hier w?re eine Variante mit while oder foreach komplizierter.

    mfg,
    hr

    Beitrag ge?ndert am 25.07.2006 20:36 von heavyraptor
  6. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    [...] da ja nicht immer "bilderanzahl % 4 == 0" gilt.


    Richtig, denn er will ja auch nur nach jedem 4. Bild eine neue Zeile.

    heavyraptor schrieb:
    Hier w?re eine Variante mit while oder foreach komplizierter.


    Eben nicht, denn bei der Variante for-Schleife m?ssen zuvor alle Bilder in ein Array eingeben werden. Mit der while-Schleife wird das Verzeichnis nach den Bildern durchsucht.
  7. Hi,


    [...] da ja nicht immer "bilderanzahl % 4 == 0" gilt.


    Richtig, denn er will ja auch nur nach jedem 4. Bild eine neue Zeile.

    Ja, aber dann werden die leeren <td>s nicht angezeigt.


    heavyraptor schrieb:
    Hier w?re eine Variante mit while oder foreach komplizierter.


    Eben nicht, denn bei der Variante for-Schleife m?ssen zuvor alle Bilder in ein Array eingeben werden. Mit der while-Schleife wird das Verzeichnis nach den Bildern durchsucht.

    Ja, das stimmt, aber nur wenn man es gleich beim Ordnerlesen anzeigt. ;)

    mfg,
    hr
  8. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    [...] da ja nicht immer "bilderanzahl % 4 == 0" gilt.

    Richtig, denn er will ja auch nur nach jedem 4. Bild eine neue Zeile.

    Ja, aber dann werden die leeren <td>s nicht angezeigt.


    Stimmt, hab ich nicht ber?cksichtigt. Also noch ein Versuch meinerseits:

    $albumname = $_GET['album'];
    $pfad = "Alben/".$albumname;
    $open_dir = opendir($pfad);
    echo "<table border='0' width='300'><tr>";
    $x = 0;
    while($pic = readdir($open_dir))
    {
        if(is_file($pfad."/".$pic))
        {
            if ($x%4 == 0 && $x != 0)
            {
                echo '</tr><tr>';
            }
            echo "<td><a href='index.php?shot=diashow&album=".$albumname."&pic=".$pic."'><img src='".$pfad."/".$pic."' width='50' height='50' border='0'></a></td>";
            $x++;
        }
    }
    if ($x%4 != 0) {
        for ($y=0;$y<(4-($x%4));$y++)
        {
            echo '<td> </td>';
        }
    }
    echo "</tr></table>";
    $close_dir = closedir($open_dir);


    Beitrag ge?ndert am 25.07.2006 21:09 von sandrock-jonas
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!