"relevante artikels", "laatste artikels" en "meest gelezen" tonen op website

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Djenne djenne

djenne djenne

10/01/2015 03:29:27
Quote Anchor link
Ik heb een website met artikels over gezondheid en voeding. Ik gebruik geen wordpress ofzo. Enkel Css, html en php.
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?
 
PHP hulp

PHP hulp

05/05/2024 02:23:54
 
Kevin J

Kevin J

10/01/2015 08:56:39
Quote Anchor link
Ik ben in een goede bui dus ik help je
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.
 
- Ariën  -
Beheerder

- Ariën -

10/01/2015 11:56:29
Quote Anchor link
Je zult dan inderdaad tags moeten aanleggen, en de laatste 5 tags ophalen, en joinen met de artikelentabel om de datum op te halen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

10/01/2015 12:44:28
Quote Anchor link
Met dit soort dingen hangt alles om je database.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM articles ORDER BY created DESC LIMIT 3


de query voor de meest gelezen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM articles ORDER BY gelezen DESC LIMIT 3


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)
PHP script in nieuw venster Selecteer het PHP script
1
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


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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.