[SQL] Sticky items

Pagina: 1
Acties:

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Ik wil voor mijn nieuwsweergave pagina een functie toevoegen dat men een nieuws bericht sticky bovenaankan zetten zodat de anderen daaronder volgen.

Ik krijg het alleen niet lekker werkend

Mn tabel ziet er als volgt uit

nws_id
nws_inhoud
nws_datum_online
nws_datum_offline
nws_sticky
nws_aktief

Het sticky zetten is geen probleem echter wil ik de client limiteren aan 1 sticky nieuws item per periode (nooit 2 tegelijk)

En daar loop ik vast.

Ik ben gaan knutselen met between

code:
1
select bla FROM bla WHERE nws_datum_online BETWEEN start AND eind AND datum_offline BETWEEN start AND eind


Maar die wil niet :P

Iemand een idee hoe dit op te lossen :?

Ja man


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Select MAX(ID) misschien een idee? Of is het niet de bedoeling dat het laatste topic weergegeven wordt? Sorry als dit niet eens in de buurt van een antwoord op jouw vraag lijkt, maar het was niet helemaal duidelijk voor me...

My personal website


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Nope het gaat erom dat er nooit een sticky item mag zijn in de zelfde periode :)

Ja man


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
LIMIT ofzo?

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Naah lijkt me ook niet :(

Het klinkt best wel simpel (8>

Je hebt een nieuws bericht wat tussen donderdag 7 en zondag 10 maart on top staat.

Je wilt nu een nieuwe toevoegen die op vrijdag 9 en zaterdag 10 ontop staat

en dat wil ik dus niet toelaten B)

[ Voor 6% gewijzigd door BierPul op 27-02-2003 19:59 . Reden: aanvulling ]

Ja man


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

ehm.... kijk dan gewoon ff of er een recordcount is voor de query? In welke omgeving gebruik je dit? En is het de bedoeling dat het al afgevangen wordt op het moment dat het item aangemaakt wordt? Anders zou het natuurlijk het allermakkelijkst zijn om te controleren of er al een topic on top staat op het moment dat je de volgende toevoegt. :P

Graag dus ff wat meer info, want dit heeft niet met SQL te maken. Je wil namelijk kijken of er al iets on top staat, maar we hebben het hier niet over toevoegen van regels via SQL of wel? Al met al dus een beetje wazig...

My personal website


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

LOST_GUNT schreef op 27 February 2003 @ 19:56:
Naah lijkt me ook niet :(

Het klinkt best wel simpel (8>

Je hebt een nieuws bericht wat tussen donderdag 7 en zondag 10 maart on top staat.

Je wilt nu een nieuwe toevoegen die op vrijdag 9 en zaterdag 10 ontop staat

en dat wil ik dus niet toelaten B)
Dus gewoon alles wat binnen die periode valt, updaten naar false en vervolgens het nieuwe item op true neerzeten?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EfBe
  • Registratie: Januari 2000
  • Niet online
use TOP (en union)

[ Voor 44% gewijzigd door EfBe op 27-02-2003 20:22 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
In welke omgeving gebruik je dit?
PHP icm MySQL
En is het de bedoeling dat het al afgevangen wordt op het moment dat het item aangemaakt wordt? Anders zou het natuurlijk het allermakkelijkst zijn om te controleren of er al een topic on top staat op het moment dat je de volgende toevoegt. :P
Nope het gaat er namelijk om dat mensen vooruit kunnen plannen

stel Er staat een nieuws item on top van 08-04-2004 tot 15-05-2004

Men wil een nieuw nieuwsitem toevoegen dat on top plaatsen van 10-04-2004 tot 12-04-2004

Dan moet dat niet mogen omdat het tussen 08-04-2004 en 15-05-2004 ligt.
Graag dus ff wat meer info
Bij deze dan :D

Ja man


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Dus wat je eigenlijk wil weten is of er overlap is tussen het te plaatsen item en een die al aanwezig is?

Overlap is er in vier gevallen:
- De begin tijd en eind tijd vallen beide binnen die van de ander,
- ze vallen er beide buiten (aan weerszijden),
- de begin/eind tijd van je nieuwe item omvatten samen de begintijd van je aanwezige item (maar dus niet ook de eindtijd van je huidige)
- Hetzelfde voor de eindtijd.

Voor het gemak noem ik ze dan D1, D2 en E1, E2
D is de huidige, E de nieuwe, 1 is begin, 2 is eind

(E1 < D1 and D2 < E2) -- er buiten
OR
(D1 < E1 and E2 < D2) -- er binnen
OR
(D1 BETWEEN E1 and E2)
OR
(D2 BETWEEN E1 and E2)


zoiets wordt dat dan geloof ik :)

[niet getest/getoest]

Een eenvoudiger manier is geloof ik om het zo te doen:
DIFF = E2 - E1 (tijdsverschil)
E1 < D1 - DIFF
OR
E2 > D2 + DIFF

[/niet getoetst]

[ Voor 18% gewijzigd door ACM op 27-02-2003 22:05 ]

Pagina: 1