Mehrere Links in Datenbank schreiben.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anlegen
auslese
beispiel
datenbank
datensatz
datum
karpfen
kombination
menge
quellcode
schreibarbeit
semikolon
spalte
spalten
speichern
stelle
string
tabelle
teil
weisen funktionieren
-
Ich speichere Links in eine Datenbank. Dabei gehören immer mehrere Links zu einem Thema. Jetzt möchte ich in der einer Tabelle unter der Spalte Links mehrere speichern. Zum Beispiel mit einem Semikolon getrennt. Aber wie kann ich beim auslesen dieses Eintrages wieder auf die einzelnen Links kommen??
Also zur Veranschaulichung jemand schreibt in ein Formular
Link: link1, link2, link3 ...
Thema: Thema1
Name:Name1
Die Links sollen in einer Datenbank gespeichert werden. Da dachte ich mir ich könnte dann in der Spalte "Link" speichern:
'link1;link2;link3;...'
Aber hieraus müsste ich noch die einzelnen Links wieder bekommen, wenn ich diesen Eintrag auslese. Wie kann ich so etwas bewerkstelligen???
Beitrag geändert: 25.8.2008 17:20:49 von rms -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Schreibe doch für jeden Link einen Datensatz.
Dann kannst du diese für die Ausgabe über den entsprechenden SQL-Befehl wieder heraussuchen:
SELECT blablabla WHERE THEMA = SO AND NAME = JENER.
Mit Semikolon würde ich da nichts trennen.
Also praktisch eine Tabelle mit
ID, LINK, THEMA, NAME
Beitrag geändert: 25.8.2008 17:21:13 von karpfen -
Das würde zwar auf mehrere Weisen funktionieren, aber an deiner Stelle würde ich einfach 5 Spalten anlegen, jede für einen Link. Ansonsten gibts eine Menge Schreibarbeit, und es wird unnötig kopliziert.
Edit: Warum ist eigentlich immer einer schneller als ich?
Beitrag geändert: 25.8.2008 17:22:52 von my-selfmade -
Das würde zwar auf mehrere Weisen funktionieren, aber an deiner Stelle würde ich einfach 5 Spalten anlegen, jede für einen Link. Ansonsten gibts eine Menge Schreibarbeit, und es wird unnötig kopliziert.
Das hat aber nix mit normalisierter Datenbank mehr zu tun.
Wenn dann mal zu einem Thema nur 1 Link anstelle von 3 ist, dann wird Speicherplatz unnötig belegt.
Zudem muss man die Tabelle erweitern, wenn man mal mehr als 3 Links (als Beispiel) haben will.
EDIT: Der Fisch ist immer schneller ;)
Beitrag geändert: 25.8.2008 17:23:52 von karpfen -
Vielen Dank für die Vorschläge. Ich habe mir überlegt einfach einen html-Quellcode Teil zu speichern, dann erledigt sich das Problem. also in etwa so:
link1<br>link2<br>
Ich weiss zwar nicht, was du vorhast, aber ich halte das für nicht so sinnvoll.
Willst du später mal irgendwas am Layout deiner Seite machen, musst du dafür jeden Datensatz ändern.
Trenne lieber die Daten und den html-Teil.
Lese die Daten dann lieber ein und formatiere das mit html und php in deiner PHP-Datei.
Und schau auch mal "normalisierte Datenbanken" an. Das Thema ist sehr hilfreich diesbezüglich. -
also ich würde das ja mit und explode(); machen....
den string an den ; aufbrechen -> $array = explode ( $string , ';' );
und dann für jeden arrayeintrag den linkausgeben ( while- oder forschleife)
wenn du den spass speicherst schreibst du den link einfach wieder in die mysql rein...
HTH
axlalf -
Also ich würde 2 Tabellen machen:
ThemaID | Thema | Name
und
ThemaID | Link
so speichert man die Kombination aus Thema+Name nicht für jeden Link extra ab -
Also ich würde 2 Tabellen machen:
ThemaID | Thema | Name
und
ThemaID | Link
so speichert man die Kombination aus Thema+Name nicht für jeden Link extra ab
Und wie wird der Link getrent behandelt bei, da sollte noch ein Primäschlüssel rein, also so wür ich es machen:
[/b]ThemaID[/b] | Thema | Name
und
ThemaID | Link
oder
LinkID | ThemaID | Link
Fett = Primärschlüssel
Unterstrichen = Fremdschlüssel
Denn ein Link kann auch in zwei Kategorien stehen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage