artikeltjes en pagina's combineren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Verhoef

Martijn Verhoef

29/04/2008 10:07:00
Quote Anchor link
Bij mijn CMS loop ik tegen het volgende aan, en ik kan niet een voorbeeld vinden waar ik uit kan halen wat handig is:

In de cms kan je pagina's aanmaken, en artikeltjes (tekstjes). Artikeltjes kunnen op een of meerdere pagina's geplaatst worden, en moeten de mogelijkheid hebben om de volgorde (per pagina) te veranderen.

De volgende tabellen denk ik momenteel nodig te hebben (even velden die niet nodig zijn hiervoor weggelaten):

PAGINAS
id: PK

ARTIKELS
id: PK

PAGINA-ARTIKEL
pagina: FK
artikel: FK
volgorde: int

Is dit de handigste opzet?

En verder, hoe ik dat in mijn cms wilde gaan laten aanmaken:
Bij het maken (of wijzigen!) van een artikel krijg je een keuzevak (multiple) waar ze de pagina's kunnen selecteren. Zodra deze gesubmit worden, moet het volgende gebeuren:

Alle pagina's die geselecteerd zijn, moeten (blijven) bestaan in de lijst pagina-artikel. Pagina's die niet geselecteerd zijn moeten niet (meer) bestaan in de lijst.

allereerst gaat hij dan met een while loop alle pagina's uit de lijst langs, die NIET geselecteerd zijn. Met een mysql-query kijkt hij eerst of hij bestaat (SELECT where pagina=id) en vervolgens delete hij hem in dat geval.
vervolgens loopt hij de pagina's door die wel gekozen zijn, hij doet insert <waardes> en on duplicate NIKS (wat is "niks" overigens?).

Is dit een goede manier cq. hebben jullie ideeën? Ik vind vooral het laatste stukje niet echt heel netjes.
 
PHP hulp

PHP hulp

24/12/2024 13:32:58
 
Joren de Wit

Joren de Wit

29/04/2008 11:28:00
Quote Anchor link
De opzet is prima, daar moet je niets aan veranderen. Voor het aanmaken van een nieuw artikel is er verder ook geen probleem, dat is een eenvoudige INSERT query.

Bij het updaten van de koppeling van een artikel aan verschillende paginas, is het wellicht het eenvoudigst om eerst alle koppelingen te verwijderen en daarna weer nieuwe koppelingen aan te maken voor de geselecteerde paginas. Op deze manier hoef je maar 2 queries uit te voeren en ben je waarschijnlijk het snelste klaar.
 
Martijn Verhoef

Martijn Verhoef

29/04/2008 12:06:00
Quote Anchor link
In dat geval lijkt het me handiger om in het tabel pagina-artikel een veld "prullenbak" te maken, waar een 1 komt te staan indien dat veld niet van toepassing is. Dit omdat -als je telkens de pagina's verwijdert- de volgorde ook weer kwijt is. De volgorde moet natuurlijk wel behouden blijven in dit geval (anders zou het erop neerkomen dat als je iets verandert aan het artikel, en submit, dat hij d.m.v. het verwijderen van alles, en opnieuw invoegen, de volgordes ook gelijk weggooit).

Zo dus doen?
 



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.