Moin Constantin,
bei deinem Problem führt mehr als ein Weg nach Rom, einer ist dieser:
mach 3 tabellen:
Tabelle 1 ist für die Rubriken da:
tb_rubrik
id = autoincrement
rubrik = VARCHAR 32 oder so für den Titel der Rubrik
reihenfolge = INT 3 (da kannst du die Reihenfolge festlegen, in der die Rubriken anzeigt werden können).
Tabelle 2 speichert die Links
tb_link
id = autoincrement
url = die URL halt
label = Verweistext für die URL
Tabelle 3 verknüpft die Kategorien mit den Links im Verhältnis 1 zu n
tb_assoc
rubrik_id = Fremdschlüssel aus tb_rubrik
link_id = Fremdschlüssel aus tb_link
Nehmen wir an, in tb_rubrik hast du die folgenden drei Datensätze:
id rubrik reihenfolge
1 Foren 1
2 Ersatzteilhändler 3
3 Private Seiten 2
In tb_link hast du einen Datensatz für die Seite von Claire Grube, die du sowohl den privaten Seiten als auch den Ersatzteilhändlern zuordnen möchtest.
Außerdem gibt es noch die Seite von Axel Schweiß, die aber rein privat ist.
id url label
34 http://www.claire-grube.de Claire Grubes Kloschüsselseite
147 http://www.axel-schweiss.de Axel Schweiß - Die Seite über Deos
In tb_assoc steht dann
rubrik_id url_id
2 34
3 34
3 147
Wenn du jetzt die privaten Seiten anzeigen lassen möchtest:
- id von private Seiten besorgen:
$q = "SELECT * FROM tb_rubrik WHERE label='Private Seiten'";
$r = mysql_query($q);
$row = mysql_fetch_assoc($r);
$rubrik_id = $row['id'];
In $rubrik_id steht jetzt die 3. Mit der ziehst du jetzt los und sammelst deine zugehörigen Links. Das SQL-Statement dazu müßte ich erstmal testen, auf Anhieb und blind kriege ich das nie hin. Ungefähr geht es glaube ich so:
SELECT tb_assoc.url_id, tb_assoc.rubrik_id, tb_link.url, tb_link.label FROM tb_assoc, tb_url WHERE tb_assoc.rubrik_id='$rubrik_id' AND tb_url.id='$tb_assoc.url_id':
Liebe Grüße, Uschi