PHP - Kategorie anklicken und entsprechende Inhalte anzeigen lassen?

... komplette Frage anzeigen

4 Antworten

Irgendwie haben mich deine Ausführungen etwas verwirrt aber ich werfe einfach mal AJAX in den Raum. Sprich wenn der User eine Kategorie auswählt, bekommt JavaScript das mit und lädt dann vom Sever die entsprechenden Einträge nach. Ist natürlich, wenn man noch nie mit AJAX gearbeitet hat, anspruchsvoller als die herkömmliche form-Lösung.

Antwort bewerten Vielen Dank für Deine Bewertung
SELECT
    ID, Name
FROM
    Subkategorien
WHERE
    Kategorie = "Baum"

Wahrscheinlich sowas in der Richtung. Du könntest uns mal deine Tabellenstruktur grob verdeutlichen, so wie webflexer das schon getan hat.

Antwort bewerten Vielen Dank für Deine Bewertung

Wichtig bei beliebig vielen Kategorien ist deine Datenbankstruktur!

Saubere Lösung: (n:m - Relation)

 TBL_Rubriken:
 
Rubrik_ID (Primärschlüssel)
Rubrik_Name (ggf. UNIQUE)
Rubrik_Beschreibung
...
 
TBL_Artikel:
 
Artikel_ID (Primärschlüssel)
Autor_ID (ggf. darüber weitere n:m-Relation)
Artikel_Titel
Artikel_Verweis (z.B. Pfad zur Textdatei o.ä.)
...
 
TBL_Artikel_Rubrik:
 
Artikel_ID (Primärschlüssel)
Rubrik_ID (Primärschlüssel)

Einfaches

 

Beispiel

:

 

Es gibt die Rubriken: (TBL_Rubriken)

1 - "News" - "Neues / Allgemeine Nachrichten"

2 - "Technik" - "Technische Informationen"

3 - "EDV" - "Alles rund um den Computer"

4 - "Mathe" - "Alles rund um die Mathematik"

 

Es gibt die Artikel: (TBL_Artikel)

1 - 33 - "Zuse und Z1" - "/docs/articles/2003/a00853.pdf"

2 - 33 - "Differentialgleichungen" - "/docs/articles/2003/a10853.pdf"

3 - 33 - "Automatentheorie" - "/docs/articles/2003/a03853.pdf"

4 - 33 - "Jan Ulrich - Auf Siegeskurs" - "/docs/articles/2003/a01853.pdf"

 

Relationen: (TBL_Artikel_Rubrik) [A_ID - R_ID]

1 - 2 (Artikel 1 - Technik)

1 - 3 (Artikel 1 - EDV)

2 - 4 (Artikel 2 - Mathe)

3 - 2 (Artikel 2 - Technik)

 

3 - 3 (Artikel 2 - EDV)

3 - 4 (Artikel 2 - Mathe)

4 - 1 (Artikel 4 - News)

 

Will man nun alle Artikel haben, die zum Thema Technik gehören, dann

funktioniert dass so:

 SELECT * FROM TBL_Artikel INNER JOIN TBL_Artikel_Rubrik
ON TBL_Artikel.Artikel_ID = TBL_Artikel_Rubrik.Artikel_ID
WHERE TBL_Artikel_Rubrik.Rubrik_ID = 2;

Will man die Namen (der Rubriken) bei der Auswahl benutzen, muss man

diese entweder in der TBL_Artikel_Rubrik mitführen oder (sauberer)

ein weiteres INNER JOIN über die Tabelle TBL_Rubrik hinzufügen!

 

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oentr
22.03.2016, 15:45

Vielen Dank! Ich habe gestern Abend selber noch eine gut funktionierende Lösung gefunden, die ich entsprechend umsetzen konnte. Eventuell ist die aber nicht die sauberste.

Die Kategorien werden zwar von mir vorgegeben, sodass Nutzer nur aus diesen wählen können, jedoch werde ich mir definitiv auch deine Lösung ansehen und ggf. eher so umsetzen.

Danke an dich und alle anderen!

Die Frage ist hiermit beantwortet.

0

Was möchtest Du wissen?