Hab ich das richtig verstanden, dass die Links als Strings kopiert und eingefügt werden und dabei bereits die Kategorie in Klammern enthalten? Ist der Teil davor dann der Linktitel oder die URL oder beides? Kannst du mal ein Beispiel geben?
Dann müsstest du eben die auseinanderfriemeln (ich würde preg_match verwenden), so dass du Linktitel, -URL sowie Kategorie in einzelnen Variablen hast.
Bzgl. der Kategorie könntest du erst ein
|
Quellcode
|
1
2
3
|
SELECT id
FROM `categories`
WHERE title = 'Eine Kategorie';
|
machen. Werden keine Datensätze geliefert, fügst du die neue Kategorie per INSERT ein und holst dir die ID (im Falle von MySQL mit mysql_insert_id()). Andernfalls bekommst du die ID. Damit kannst du jetzt den Link in die Link-Tabelle einfügen und dabei die Kategorie-ID als Fremdschlüssel mit übergeben.
Wichtig: Sorge umbedingt dafür, dass kein SQL-Injection möglich ist, indem du die vom Benutzer eingefügten Werte überprüfst/prüfen lässt.
Wenn du magst, benutze doch meinen
Database Abstraction Layer für MySQL in PHP. Damit kannst du zum einen etwas von MySQL abstrahieren, bekommst eine deutlich komfortablere Zugriffsmöglichkeit auf Tabellen und kannst zudem Platzhalter mit Auto-Escaping der Parameter benutzen. Sowas kann ich wirklich dringend empfehlen.
Eine Liste der Kategorien zu beziehen und diese als Liste von Links auszugeben, sollte nicht das Problem sein. Diese Links verweisen auf ein entsprechendes Script und übergeben die Kategorie-ID als (GET-)Parameter, worauf das Script ein
|
Quellcode
|
1
2
3
|
SELECT id, url, title
FROM `links`
WHERE category_id = 123;
|
absetzt und die gefundenen Links ausgibt.