Christian: Tabelle mit PHP erzeugen

Hallo!
Ich habe eine Gallerie aufgebaut, in der die Bilder in einer Tabelle angeordnet sind. Die Bilder sind durchnummeriert und wie man im Quelltext sehen kann sind sie immer ein link zu einen PopUp in dem die Bilder angezeigt werden.

<tr>
<td id="bild"><a href="javascript:bilder ('bilder.php?nr=0001')"><div align="center"><img src="Bilder/Thumbnails/TN0001.jpg" id="b"></div></a></td>
<td id="bild"><a href="javascript:bilder ('bilder.php?nr=0002')"><div align="center"><img src="Bilder/Thumbnails/TN0002.jpg" id="b"></div></a></td>
.....
</tr>
<tr>

<td id="bild"><a href="javascript:bilder ('bilder.php?nr=0005')"><div align="center"><img src="Bilder/Thumbnails/TN0005.jpg" id="b"></div></a></td>
.....
</tr>

Nun habe ich den Quelltext einfach so geschrieben, gibt es aber mit PHP eine Möglichkeit nur die Anzahl der Bilder anzugeben, so dass dann automatisch die Gallerie erzeugt wird? Es muss jeweils nur die Nummer um eins erhöht werden. Außerdem soll nach einer bestimmten Anzahl von Bildern einen neue Zeile begonnen werden.
Kann mir jemand helfen auf eine entsprechende Funktion zu kommen??
Danke,
Christian

  1. Hallo Christian!
    for()
    Grüße, Matze

    1. Hallo nochmal,

      for()

      do{}while
      while()
      gehen auch.
      Ich würde in deinem Fall auch verschachteln
      um Spalten zu erzeugen.

      Grüße, Matze

      1. Hallo Matze,
        Danke für deine Antwort, leider sagt sie mir nicht wirklich etwas, weil meine PHP-Kenntnisse viel zu gering sind. Könntest du vielleicht deinen Vorschlag ein wenig erläutern???
        MfG,
        Christian

        1. Auf die schnelle gesagt so.

          <tabelle>
          <?PHP
          for($a=1,$a<4,$a++){
          ?>
          <zeile>
          <?PHP
          for($b=1,$b<4,$b++){
          ?>
          <spalte>Inhalt</spalte>
          <?PHP
          }
          ?>
          </zeile>
          <?PHP
          }
          ?>
          </tabelle>

          Erzeugt eine Tabelle 3x3
          Habden Code jetzt aber nicht probiert.
          Auf den Rest solltest du selbst kommen oder dich
          erstmal auf einschlägigen PHP Seiten informieren.
          Ich empfehl dir php.net (auch deutsch)

          Grüße, Matze

          1. Hi,

            <tabelle>
            <?PHP
            for($a=1,$a<4,$a++){
            ?>
            <zeile>
            <?PHP
            for($b=1,$b<4,$b++){
            ?>
            <spalte>Inhalt</spalte>
            <?PHP
            }
            ?>
            </zeile>
            <?PHP
            }
            ?>
            </tabelle>

            Das ist sehr unflexibel. Geschickter ist es einfach durch alle Bilder zu loopen und per Modulo an den richtigen Stellen ein ein /tr tr einfügen. Am Loopende füllst Du - entsprechend des gewaehlten Modulowertes -  mit Leerzellen auf. Eine solche Galerie ist allerdings - wie gesagt - kein Fall fuer eine Tabelle.

            Gruesse, Joachim

            --
            Am Ende wird alles gut.
            1. Hallo,
              danke für eure Antworten.
              Was spricht denn dagegen, eine Galerie in einer Tabelle zu formatieren?
              Christian

              1. Hi,

                Was spricht denn dagegen, eine Galerie in einer Tabelle zu formatieren?

                Eine Galerie enthaelt i.d.R. eine Liste von Bildern - keine tabellarische Daten. Dank moderner Browser mit entsprechenden Css-Fähigkeiten ist eine solche Zweckentfremdung von Tabellen zu Layoutzwecken in den meisten Fällen unnötig. Vielleicht solltest Du Dich etwas mehr mit zeitgemässer Webseiten-Architektur auseinandersetzen, Stichwort: schlanker Code und Barrierefreiheit. Das Archiv ist übervoll mit diesem Themen.

                Gruesse, Joachim

                --
                Am Ende wird alles gut.
                1. Hallo Joachim!
                  Ich weiß dass das nicht die Ideallösung ist, aber danach hatte er gefragt.
                  Im übrigen kommen statt der "," ";" hin.
                  @Christian: Im Moment bist du aber wirklich mit CSS besser beraten.
                  Früher oder später musst du es eh lernen wenn du dich mit HTML beschäftigst.

                  Grüße, Matze

  2. hallo,

    Ich habe eine Gallerie aufgebaut

    Nein, das hast du nicht, weil es so etwas laut Duden nicht gibt. Was es geben könnte, wäre eine "Galerie", und wenn du unbedingt ein englisches Wort dafür brauchst, wäre es eine "gallery".

    <td id="bild"><a href="javascript:bilder ('bilder.php?nr=0001')"><div align="center"><img src="Bilder/Thumbnails/TN0001.jpg" id="b"></div></a></td>

    Das ist ziemlich sehr gräßlich. <a href="javascript ..."> sollest du niemals so benutzen wollen. Korrekt wäre:
      <a href="bildadresse" onclick="bilder(...)">
    Und vollends überflüssig ist dein DIV innerhalb von <a>, das brauchst du garantiert nicht.

    Nun habe ich den Quelltext einfach so geschrieben

    Und nicht geprüft. Frage mal bitte den Validator.

    gibt es aber mit PHP eine Möglichkeit nur die Anzahl der Bilder anzugeben, so dass dann automatisch die Gallerie erzeugt wird?

    PHP kann keine "Gallerie" erzeugen, siehe oben. Was du tun könntest, wäre, einen Array zu benutzen. Aber du willst ja sowieso nicht PHP benutzen, sondern machst die Anzeige deiner Bilder von Javascript abhängig. Für Javascript gibt es genau für solche Sachen ein Beispiel in SELFHTML, das dir bestimmt gut bekannt ist. Du brauchst es dir bloß für deine Bedürfnisse umzustellen.

    Und eine Tabelle brauchst du eigentlich auch nicht.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  3. Hi,

    <td id="bild"><a href="javascript:bilder ('bilder.php?nr=0001')"><div align="center"><img src="Bilder/Thumbnails/TN0001.jpg" id="b"></div></a></td>

    Nicht gut.
    Ins href solltest Du ein Alternativlink direkt auf die Grafik setzen, den Aufruf ins onclick, gefolgt von einem return false (siehe Archiv warum). Weiterhin ist diese Tabellenverschachtelei absolut überflüssig.
    Man kann es mit Css z.B.: so lösen http://joachim.wendenburg.de/index.php?dir=schnee wobei ich zu meiner Schande gestehen muss, dass bei meinem Beispiel eine Liste besser waere, bin nur zu faul zum Umbauen. Diese liesse sich aber mit float und clear genauso formatieren.

    Außerdem soll nach einer bestimmten Anzahl von Bildern einen neue Zeile begonnen werden.

    Nutze modulo "%".

    Gruesse, Joachim

    --
    Am Ende wird alles gut.