Array dynamisch ausgeben
kim
- php
Hallo,
ich lasse die Daten eine Mysql Datenbank ausgeben und mache nach einer bestimmten Anzahl (Bildern) einen Zeilenumbruch. Nun würde ich am Rand (vor dem umbruch) die Anzahl der Reihen hinzufgen.
Also ungefähr so:
Bild Bild Bild Reihe 1
Bild Bild Bild Reihe 2
Bild Bild Bild Reihe 3
mein Code ist momentan so:
$array = array();
for ($i=1; $i<=3; $i++)
{
$array[] = $i;
}
$count++;
if ($count == 3) {
echo " ".$i++."<br>";
}
}
nun steht das nach jeder Reihe :Reihe 4
Ich bastle seit Stunden rum und vielleicht kann mir jemand helfen.
danke.
Hello,
mein Code ist momentan so:
$array = array();
for ($i=1; $i<=3; $i++)
{
$array[] = $i;
}
$count++;
if ($count == 3)
{
echo " ".$i++."<br>";
}
}
Was soll denn der Code bewirken?
Kannst Du das bitte ienfach nochmal auf Deutsch erklären, der Reihe nach?
Du hast eine Datenbank
In der Datenbank stehen Dateinamen auf Bilder
in jedem Datensatz eins?
Die holst Du mit einer Abfrage in ein Resultset
und überführst dieses dann in ein PHP-Array
Wie?
Dieses Array willst Du dann ausgeben, und in jeder Zeile (HTML) die Zeilennummer hinzufügen
Habe ich das bisher richtig verstanden?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Du hast eine Datenbank
In der Datenbank stehen Dateinamen auf Bilder
in jedem Datensatz eins?
Die holst Du mit einer Abfrage in ein Resultset
und überführst dieses dann in ein PHP-ArrayWie?
Dieses Array willst Du dann ausgeben, und in jeder Zeile (HTML) die Zeilennummer hinzufügen
Habe ich das bisher richtig verstanden?
Ja im Prinzip richtig. Der Code ist auch nur ein kleines Stück.
}
.....
.....
$count++;
if ($count == 3) {
echo " ".$i++."<br>";
}
ergibt dann :
Bild Bild Bild
Bild Bild Bild
.....
nun gehts darum, dass ich neben die Reihen immer die Reihennummer schreiben lasse.
if ($count == 3)
ersetze ich immer mit ner anderen zahl - also immer mal eine andrer Anzahl von Bildern nebeneinander...
Ist es verständlich?
nun gehts darum, dass ich neben die Reihen immer die Reihennummer schreiben lasse.
Dann definiere eine zweite Zählvariable, gib sie aus, wenn $count den Wert 3 hat und zähle sie eins hoch. Wenn $count wieder 3 ist, gib die nun hochgezählte zweite Variable aus und erhöhe sie wieder um 1 usw. usf. bis zum Ende.
Siechfred
Hallo,
ich möchte mich ganz herzlich für die Lösungen bedanken.
Habe jetzt noch ein bisserl gebraucht, um die DB-Abfragen da rein zu bekommen. Aber nun funktioniert das einwandfrei. JUHU!
Vielen lieben Dank.
Kim
Hello,
Ja im Prinzip richtig. Der Code ist auch nur ein kleines Stück.
- erst die Datenbankabfrage z.B. 100 Stück
- man will 3 Bilder nebeneinander, danach immer einen Umbruch
deshalb das hier alles:
Ich vermute, dass Du dann eine Tewbelle benötigst, wenn die drei Bilder nicht floaten sollen, sondern immer garantiert drei in einer Zeile sein sollen.
Wenn $_data das Array der Bildnamen aus der Datenbank ist:
<?php ### maketable.php ###
$anzahl_bilder = 21;
$spalten = 3;
$_data = array();
for ($i=1; $i<$anzahl_bilder; $i++) ## als Array mit den Bildnamen aus DB
{
$_data[$i] = "Bild $i";
}
if (is_array($_data))
{
$bildzahl = 0;
$zeile = 1;
echo "<table>\n";
echo " <tr>\n";
foreach($_data as $key => $val) ## $val ist der Name des Bildes
{
$bildzahl++;
echo " <td>$val</td>\n"; ## kannst auch <img src="$val" ...> schreiben
if ($bildzahl % $spalten == 0)
{
echo " <td>Zeile: $zeile</td>\n";
echo " <tr>\n <tr>\n";
$zeile++;
}
}
## Tabelle fertig bauen
$rest = $bildzahl % $spalten;
if ($rest > 0)
{
for ($i = $spalten - $rest; $i>0; $i--)
{
echo "<td> </td>\n";
}
echo " <td>Zeile: $zeile</td>\n";
}
echo " </tr>\n";
echo "</table>\n";
}
?>
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Mahlzeit,
echo " <tr>\n <tr>\n";
Ich würde empfehlen:
echo " </tr>\n <tr>\n";
;-)
MfG,
EKKi
Hello Ekki,
echo " <tr>\n <tr>\n";
Ich würde empfehlen:
echo " </tr>\n <tr>\n";
Danke für die Korrektur.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom