"relevante artikels", "laatste artikels" en "meest gelezen" tonen op website
Nu zou ik graag onder elk artikel, 3 andere relevante artikels weergeven van op mijn website.
Nu moet ik dat allemaal manueel doen.
Kan er mij iemand helpen om dat automatisch te laten werken? Waarschijnlijk moet ik elk artikel een aantal tags geven. En dan invoeren in MySQL. Alleen weet ik totaal niet hoe eraan te beginnen.
Wanneer ik het opzoek kom ik altijd de widget functie van blogger of wordpress tegen.
Maar ik heb een aparte website, is geen blog ofzo.
En ook zou ik graag bij elk nieuw artikel dat laten verschijnen in een sidebar met "laatste artikels" en "meest gelezen" Nu doe ik dat ook allemaal manueel.
Kan iemand me aub enige stappen verder helpen?
Met laatste artikels is redelijk simpel dan moet je gebruiken iets van dit:
mysql_query("SELECT * FROM nieuws ORDER BY id DESC");
Ik hoop en neem aan dat jij wel een 'Id' hebt die met A_I (auto-incrementing)
Meest gelezen word dan wat moeilijker, dan moet je zorgen dat er word gelogd wie welk nieuws bericht bekijkt, en dan moet je daaruit een query laten lopen.
Ik hoop dat je het snapt anders laat maar weten.
Je zult dan inderdaad tags moeten aanleggen, en de laatste 5 tags ophalen, en joinen met de artikelentabel om de datum op te halen.
Relevante artikels: Bedoel je dat je artikels in een categorie stopt en als er een artikel uit categorie A gelezen wordt dat je dan nog drie artikels laat zien uit diezelfde categorie A?
In dat geval worden er dus vooral wat eisen aan je database inrichting gesteld:
a) voor relevante artikels moet ieder artikel in één of meerdere categorieën (mag je ook rubrieken noemen) geplaatst worden.
b) voor de laatste artikels heb je de aanmaakdatum nodig van ieder artikel
c) voor meest gelezen zul je een tellertje moeten inbouwen. Voor de teller is een extra kolom nodig die je bijvoorbeeld 'gelezen' noemt. Iedere keer als een gebruiker het artikel tevoorschijn haalt verhoog je het cijfer in de kolom gelezen met 1.
Daarna als van ieder artikel een aanmaakdatum bekend is (created) dan kun je de laatste drie met een eenvoudige query uitlezen:
de query voor de meest gelezen:
Het lastigste is misschien wel de relevantie:
Indien je zelf wilt bepalen welk artikel bij welke rubriek hoort heb je een paar extra tabellen nodig:
rubrieken
---------
- id
- naam
artikelen
---------
(heb je al)
rubrieken_artikelen
-------------------
- artikel_id
- rubriek_id
Je kunt nu rubrieken aanmaken in de tabel rubrieken en artikelen aanmaken in de tabel artikelen
Daarna kun je in de koppeltabel rubrieken_artikelen rijen toevoegen waar mee je een artikel aan een rubriek koppelt. Je kunt dus ook een artikel aan meer dan 1 rubriek koppelen:
bijv
artikel_id / rubriek_id
1 / 1
1 / 5
artikel 1 valt in rubriek 1 en 5.
Het uitlezen van artikelen in een bepaalde rubriek vereist een query met een tweetal joins zodat de drie tabellen aan elkaar gekoppeld worden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT
a.id, a.titel, r.naam
FROM
artikelen a
JOIN
rubrieken_artikelen j
ON
a.id=j.artikel_id
JOIN
rubrieken r
ON
r.id=j.rubriek_id
WHERE
r.naam='Rubriek-naam'
ORDER BY
a.gelezen DESC
LIMIT
3
a.id, a.titel, r.naam
FROM
artikelen a
JOIN
rubrieken_artikelen j
ON
a.id=j.artikel_id
JOIN
rubrieken r
ON
r.id=j.rubriek_id
WHERE
r.naam='Rubriek-naam'
ORDER BY
a.gelezen DESC
LIMIT
3
Toevoeging op 10/01/2015 12:46:16:
a = de alias van artikelen
j = de alias van de jointable (koppeltabel rubrieken_artikelen)
r = de alias van rubrieken