Nur so viele Daten wie nötig auslesen

Hey guys,

evtl ist der Titel etwas missverständlich gewählt, wusste es aber nicht anders auszudrücken.

Folgendes Problem:

Ich habe Daten in eine Datenbank eingepflegt, die mir später eine Übersichtseite füllen sollen. Das HTML-Gerüst ist angelegt und wird je nach ID in der URL ausgelesen. Das funktioniert alles wunderbar… Jetzt ist es allerdings so, dass ich für die verschiedenen Seiten verschieden viele Bilder haben. Im HTML-Teil habe ich eine Art Diashow, die eben mit genau diesen Bildern generiert werden soll.

In der Datenbank selbst habe ich Tabellen mit ‚bild1‘, ‚bild2‘, ‚bild3‘, …

Wie kann ich nun nach und nach auslesen, ob diese Felder gefüllt sind oder nicht, wie speicher ich das und wie gebe ich das dann an meine while-Schleife weiter?

Ich hoffe, ihr versteht was ich meine.

Bin auch für andere Lösungswege offen :wink:

Danke vorab!

Hallo :smiley:
Mit
[PHP]if(isset($string))[/PHP]
Kannst du testen ob $string vorhanden ist…
Lg
Daniel

Hey :wink:

Danke für deine Antwort.
Leuchtet ein, war auch schon eine Option (hatte ich vergessen zu sagen, was ich schon versucht hatte), die mir letzendlich aber dann doch etwas zu lange war. Mal angenommen, ich habe Felder von ‚bild1‘ bis ‚bild12‘, da müsste ich ja 12 if-Abfragen starten… Das geht bestimt auch einfacher, oder? Kann ich beispielsweise ein Array schreiben und dort irgendwie jeden Wert überprüfen? Irgendetwas in der Richtung…

Danke & Gruß

Könntest du das genauer beschreiben? Das klingt nach falschem Datenbankdesign.

Es sollte in etwa so aussehen:

[code]Tabelle ‚collection‘:

id | name | directory

1 | Spanien 2004 | spanien2004
2 | Geburtstag 2009 | geb2009

Tabelle ‚photo‘:

id | collection_id | sort_order | filename

1 | 1 | 2 | xyz.jpg
2 | 1 | 1 | uierg.jpg
3 | 2 | 10 | meer.jpg
4 | 2 | 5 | strand.jpg[/code]

Alle Bilder einer „Collection“ kannst du dann etwa über diese Abfrage ermitteln:

SELECT `id`, `filename` FROM `photo` WHERE `collection_id` = 1 ORDER BY `sort_order` ASC

Danke mermshaus.

Du hast das schon richtig verstanden. Um es mal etwas konkreter zu beschreiben, geht es um die Darstellung von Informationen für Feuerwehrfahrzeuge.
Meine Tabellen sind da, zunächst, etwas starr aufgebaut. Bedeutet, dass alle Informationen zu einem Fahrzeug in der Tabelle „fahrzeuge“ liegen. Unterschieden werden die Fahrzeuge durch ihre ID.

Ich versuche das mal schnell darzustellen

Tabelle 'fahrzeuge'

id | fname | name | .... |   bild1   |   bild2   |   bild3   |
--------------------------------------------------------------
 1 |  22   | TLF  | .... | bild1.jpg | bild2.jpg | bild3.jpg |
 2 |  19   | MTF  | .... | bild1.jpg | bild2.jpg | bild3.jpg |

Wenn ich das nun richtig verstanden habe, lege ich eine neue Tabelle ‚fahrzeuge_bilder‘ an und verknüpfe die dort hinterlegten Daten mit den jeweiligen IDs aus der Tabelle ‚fahrzeuge‘ , right?

Danke & Gruß

Ja, genau. So kann die neue Tabelle beliebig um Einträge erweitert werden, ohne dass Änderungen am Schema (hier grob: der Spaltenanzahl) vorgenommen werden müssen.

Muchas gracias!

Wieder was gelernt :wink:

Gruß

Das nennt sich Normalisierung und ist normalerweise das Erste, was man lernt, wenn man sich mit Datenbanken beschäftigt.