PHP & MySQL
CC
- php
Hi,
Ich habe eine PHP Seite, in die ich unter verschiedenen Themen verschiedene Inhalte in die Seite einlade.
Die Inhalte kommen aus einer MySQL DB und werden nach Gebiet sortiert. Es werden immer die drei ersten
Einträge auf der Seite gezigt, mit einem Link "alle anzeigen".
Das klappt auch alles, aber viele der DB-Inhalte passen zu mehreren Themen und werden daher auch in mehrere eingladen.
Jetzt möche ich aber, das ein Inhalt in z.B Themen (A,B,C,D,E,F) die Nummer 1 ist, ein anderer in (T,Z,U) und in F nur Nummer 2.
Da es sehr viele Themen und Einträge sind, finde ich keine Möglichkeit. Ausserdem muß ich die Rangfolge ändern können.
Kann mir einer nen Tip geben, welche Art von Key ich n der DB setzen könnte, um zu die Auflistung im Griff zu haben?
Danke ;-)
Hi,
Kann mir einer nen Tip geben, welche Art von Key ich n der DB setzen könnte, um zu die Auflistung im Griff zu haben?
themen
------
id
thema
inhalte
-------
id
inhalt
themen_inhalte
--------------
ref_themen
ref_inhalte
position
Eine klassische n:m-Beziehung, der Du nur noch ein ORDER BY themen_inhalte.position hinzufügen mußt.
Cheatah
Hi,
Kann mir einer nen Tip geben, welche Art von Key ich n der DB setzen könnte, um zu die Auflistung im Griff zu haben?
themen
id
thema
inhalte
id
inhalt
themen_inhalte
ref_themen
ref_inhalte
position
Eine klassische n:m-Beziehung, der Du nur noch ein ORDER BY themen_inhalte.position hinzufügen mußt.
Hallo Cheatah,
Ganz so einfach wird es nicht sein. :)
der Query müsste in etwa so aussehen um alle inhalte eines bestimmten themas in deren Reihenfolge zu bekommen:
"SELECT DISTINCT i.inhalt,i.id FROM inhalte AS i, themen_inhalte AS t WHERE ( t.ref_tehmen='deineThemaid' AND t.ref_inhalte = i.id) ORDER by t.position ASC LIMIT 0,3"
Angabe ohne Gewähr. :)
Ludwig
Hi,
Ganz so einfach wird es nicht sein. :)
warum nicht? Das Statement wird wie bei jeder n:m-Beziehung sein :-)
"SELECT DISTINCT i.inhalt,i.id
Hm, ich glaube nicht, daß sich das "DISTINCT" hier mit dem Rest verträgt...
WHERE ( t.ref_tehmen='deineThemaid'
Eine ID sollte idealerweise eine Zahl sein... also bitte keine Singlequotes ;-)
Angabe ohne Gewähr. :)
Im Prinzip aber richtig :-)
Cheatah
P.S.: Wenn Du glaubst, das Statement sei kompliziert, dann hast Du noch nicht viel mit SQL gemacht *g*
Hi auch,
Jetzt möche ich aber, das ein Inhalt in z.B Themen (A,B,C,D,E,F)
die Nummer 1 ist, ein anderer in (T,Z,U) und in F nur Nummer 2.
Wovon soll das abhängen?
Im letzteren Falle zeigt Cheatahs Posting den Weg zum Ziel; es wäre
allerdings lästig, weil wartungsintensiv, eine solche Tabelle pflegen
zu müssen.
Im ersteren Falle kommst Du mit einer geeigneten Sortier-Funktion aus,
ohne dauerhaften Einsatz von manpower - deshalb solltest Du diese Lösung
zuerst probieren (also Deine Sortierkriterien exakt spezifizieren).
Viele Grüße
Michael