ranking van artikelen op pagina

Pagina: 1
Acties:

  • rmfloris
  • Registratie: Maart 2002
  • Laatst online: 22-11-2024

rmfloris

Kowalski: Kaboeeem??

Topicstarter
Ik heb een CMS systeem gemaakt. Hierin kunnen verschillende gebruikers artikelen posten die dan op de site komen. Men wil ook de mogelijkheid hebben om bepaalde artikelen bovenaan de pagina te hebben en bepaalde artikelen als laatste. Ik zat te denken om ieder artikel een ranking mee te geven. Dat is het probleem niet. Het probleem is dat zodra ze een nieuw artikel invoeren en deze bijvoorbeeld op positie '1' moet komen te staan er al een artikel op positie '1' staat. Dit artikel moet dus een plaats omlaag en daarmee ook alles wat eronder staat. Mijn vraag is nou, wat is beter. Zodra er een dubbel is, alles wat eronder zit een positie opschuiven of alleen de vrije posities weergeven?

Mocht iemand er nog een ander idee/oplossing voor hebben dan hoor ik die natuurlijk graag.

Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:18

gorgi_19

Kruimeltjes zijn weer op :9

De eerste optie; als er een nieuwe nummer 1 komt, met 20 items, moet je anders eerst 20 items gaan verplaatsen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • rmfloris
  • Registratie: Maart 2002
  • Laatst online: 22-11-2024

rmfloris

Kowalski: Kaboeeem??

Topicstarter
De eerste optie is alles verplaatsen, maar uit jou reactie begrijp ik dat dat jij niet de beste oplossing is.

Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Gewoon nummeren en dan soorteren op nummer en tijd. Dus dat bij artikelen met gelijk nummer het nieuwste item boven staat. Dan hoef je ook niet continu om te nummeren.

{signature}


  • rmfloris
  • Registratie: Maart 2002
  • Laatst online: 22-11-2024

rmfloris

Kowalski: Kaboeeem??

Topicstarter
Misschien is het artikel verkeerd gekozen. Het ingevoerde is niet afhankelijk van tijd. Dus het betrefd niet per se het nieuwste artikel dat bovenaan. Het kan best zijn dat een oud artikel juist bovenaan moet komen te staan omdat deze het belangrijkste is.

Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
rmfloris schreef op 18 januari 2004 @ 20:21:
Misschien is het artikel verkeerd gekozen. Het ingevoerde is niet afhankelijk van tijd. Dus het betrefd niet per se het nieuwste artikel dat bovenaan. Het kan best zijn dat een oud artikel juist bovenaan moet komen te staan omdat deze het belangrijkste is.
Ja, maar als iets belangrijker is dan had het op voorhand al een lager nummer. B)
Het gaat erom dat artikelen met gelijke prioriteit op een 2e manier gesorteerd kunnen worden.

{signature}


  • rmfloris
  • Registratie: Maart 2002
  • Laatst online: 22-11-2024

rmfloris

Kowalski: Kaboeeem??

Topicstarter
ok stel, ik heb drie artikelen in mijn database staan.

artikel 1, positie 1
artikel 2 positie 2
artikel 3 positie 3

nu wil ik een extra artikel toevoegen dat op positie 2 komt te staan. Dat is dus ipv artikel 2 dat nu op positie staat. Tot zover ga je reactie met tijd op.

artikel 1, positie 1
artikel 4 positie 2
artikel 2 positie 3
artikel 3 positie 4

Maar nu komt er een 5e artikel bij dat achter artikel 4 moet komen, maar voor artikel 2, dus positie 3. Als artikel 4 en 2 nu zelfde positie hebben '2' moet de gebruiker dit onthouden en hem dus ook op positie twee zetten, maar hij wil hem juist op positie 3 hebben.

Hier wordt het probleem met de tijd zichtbaar. Hopelijk heb je andere oplossing.

Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl


  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08-2025
je kan toch twee arrays gebruiken? 1 vande positie (1,2,3,4,5,6etc) en 1 van het id van het artikel? en dan deze twee linken? en daarmee de opbouw verzorgen? dan zit je niet vast aan het verschuiven?

Of is dit weer een non oplossing van een beginner in coding ;)

[ Voor 15% gewijzigd door Justice op 18-01-2004 20:34 ]

Human Bobby


  • rmfloris
  • Registratie: Maart 2002
  • Laatst online: 22-11-2024

rmfloris

Kowalski: Kaboeeem??

Topicstarter
Justice schreef op 18 januari 2004 @ 20:34:
je kan toch twee arrays gebruiken? 1 vande positie (1,2,3,4,5,6etc) en 1 van het id van het artikel? en dan deze twee linken? en daarmee de opbouw verzorgen? dan zit je niet vast aan het verschuiven?

Of is dit weer een non oplossing van een beginner in coding ;)
ik heb helemaal niet aan deze oplossing gedacht, maar hoe wou je dit dan in code zetten? Heb je misschien een klein stukje als voorbeeld?

Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl


  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08-2025
Ik zou het niet weten, zo goed kan ik niet coden :)

Human Bobby


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Justice schreef op 18 januari 2004 @ 20:34:
je kan toch twee arrays gebruiken? 1 vande positie (1,2,3,4,5,6etc) en 1 van het id van het artikel? en dan deze twee linken? en daarmee de opbouw verzorgen? dan zit je niet vast aan het verschuiven?

Of is dit weer een non oplossing van een beginner in coding ;)
Ja, uiteindelijk zou ik zelf ook het in een tabel zetten, gewoon omdat het netter is, maar dit probleem wordt er imo niet mee opgelost. Want dan moet je in deze tabel alsnog alle .positie waarden doorschuiven.

Maar als je 'frontpage' af wat het ook is een vast aantal artikelen heeft, dan zal het ook nog wel meevallen met de extra belasting. Ik neem hierbij aan dat er niet 10 artikelen per s wordt gepost.

{signature}


  • Morax
  • Registratie: Mei 2002
  • Laatst online: 09:53
Edit: laat maar....

[ Voor 92% gewijzigd door Morax op 18-01-2004 20:51 ]

What do you mean I have no life? I am a gamer, I got millions!


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Morax schreef op 18 januari 2004 @ 20:48:
Geef je de artikelen een id in de database? Zo ja, dan kan je ze sorteren op id als je ze uit de database haalt. Als je MySQL gebruikt zou ik je de query kunnen geven....
sorteren op id komt bij de meeste implementatie neer op sorteren op tijd. :)

{signature}


  • Morax
  • Registratie: Mei 2002
  • Laatst online: 09:53
Voutloos schreef op 18 januari 2004 @ 20:50:
[...]

sorteren op id komt bij de meeste implementatie neer op sorteren op tijd. :)
offtopic:
Ga mij nou niet quoten als ik mijn post wegedit :+

What do you mean I have no life? I am a gamer, I got millions!


  • rmfloris
  • Registratie: Maart 2002
  • Laatst online: 22-11-2024

rmfloris

Kowalski: Kaboeeem??

Topicstarter
alle artikelen staan inderdaad in een database.

id|naam|inhoud|positie

Het is nu mogelijk om een dubbele positie te hebben en dan sorteer ik eerst op positie en dan op id. "sort by positie, id".

Dat is het niet het probleem, maar het is niet netjes gedaan, ik heb liever dat het goed wordt opgelost.

Daarnaast zal het maximaal om tiental artikelen zijn, die dagelijks veranderen. Dus er worden artikelen verwijderd en toegevoegd.

Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl


  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
Ik heb ook een artikel database gemaakt met ranking. Wat ik heb gedaan is elk artikel tijdens het aanmaken een ranking mee te geven zodat ie altijd onderaan staat. Bij een bestaande lijst met artikelen kan je vervolgens opnieuw ranken.

Het ranken zelf heb ik een beetje afgekeken van pbase, in hun foto database heb je ook de mogelijkheid van ranken. Wat ik heb gejat is het feit dat je tussen 2 artikelen standaard 10 (punten?) hebt zitten.
Bv:
Artikel 1 - Ranking: 10
Artikel 3 - Ranking: 20
Artikel 2 - Ranking: 30

Op deze manier hoef je als gebruiker niet moeilijk te gaan zitten doen als je wat artikelen op een andere plaats wil zetten. Bij het veranderen van een ranking zorg ik ook altijd dat de ranking opnieuw wordt bepaald, zodat ze altijd op 10 beginnen met een increment van 10.

Ik hoop dat het zo een beetje duidelijk is, wellicht heb je er wat aan.

Ook Knor is aangestoken met het ligfietsvirus!


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

waarom niet een extra kolom in je database "high-low" (dit kun je aanvinken oid als je het artikel invoert). kun je op je frontpage bijvoorbeeld de laatste 2 'highs' pakken, dan de 6 laatste 'normale' en dan de 2 laatste 'lows' o.i.d., eventueel kun je in je admin nog de high/low aanpasbaar maken

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
rmfloris schreef op 18 januari 2004 @ 20:54:
Daarnaast zal het maximaal om tiental artikelen zijn, die dagelijks veranderen. Dus er worden artikelen verwijderd en toegevoegd.
In dat geval, valt het dus wel mee met de load, als je een tabel van 10 dingen hebt. Worst case is dan 9 waarden vervangen.

Dus dan heb je een tabel HuidigeTien voor je actieve artikelen en posities. En omdat je dit in een aparte tabel doet, blijven oude artikelen gewoon bestaan en op te zoeken.
X-Lars schreef op 18 januari 2004 @ 20:57:
waarom niet een extra kolom in je database "high-low" (dit kun je aanvinken oid als je het artikel invoert). kun je op je frontpage bijvoorbeeld de laatste 2 'highs' pakken, dan de 6 laatste 'normale' en dan de 2 laatste 'lows' o.i.d., eventueel kun je in je admin nog de high/low aanpasbaar maken
Dat is hetzelfde als positie:{1,2,3} met 2e sort functie.

[ Voor 85% gewijzigd door Voutloos op 18-01-2004 21:02 ]

{signature}


  • rmfloris
  • Registratie: Maart 2002
  • Laatst online: 22-11-2024

rmfloris

Kowalski: Kaboeeem??

Topicstarter
Ok, ik heb het volgende nu:

Je schuift eerst alles netjes op:
PHP:
1
update artikelen set positie = positie+1 where positie >= 'invoer_positie'


Dus alles wat na de nieuwe 'invoer_positie' komt verschuift.

Mocht er een artikel te worden verwijderd dan krijg je het volgende:
PHP:
1
2
3
Delete from artikelen where id = ''id'

update artikelen set positie = positie-1 where positie >= 'invoer_positie'


Tot zover heb je geen last van gaten in de database, maar wat als er een artikel wordt geupdate? Dus artikel 1 van positie 2 gaat naar positie 5. Dan komt er een gat tussen 1 en 3 te zitten of lost het volgende dit op:

PHP:
1
2
3
update artikelen set positie = positie+1 where positie >= 'invoer_positie'
update artikelen set positie = 'nieuwe_positie' where id = 'id'
update artikelen set positie = positie-1 where positie >= 'nieuwe_positie'


Ik hoop dat het nog te volgen is.

Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl

Pagina: 1