[php/mysql] Boomstructuur: positioneren in menu

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb voor mijn websites een dynamisch menu gemaakt in een mysql database met een parent veld zodat een boomstructuur gecreerd wordt.

Bij elk menu item hoort een volgorde attribuut waardoor de positie van een item in het menu wordt aangegeven.

Item 1 --- 100

Item 2 --- 200

Item 2 --- 300

Nu wil ik in mijn CMS de volgorde kunnen aanpassen door middel van de volgende opties:

- Naar begin
- Naar boven
- Naar beneden
- Naar einde

Als ik nu element 3 naar het begin wil verschuiven kan ik het aatribuut van item 3 100 maken en de andere elementen door laten schuiven.

Daarvoor moet ik al 3 UPDATE queries gebruiken.

Weet iemand voor het positioneren van menu items een wat meer logischer systeem?

Acties:
  • 0 Henk 'm!

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 12:37
Misschien is dit iets?

MySQL:
1
2
UPDATE tabel SET getal = getal + 100 WHERE getal < 300;
UPDATE tabel SET getal = 100 WHERE naam = 'item3';

[ Voor 38% gewijzigd door jurri@n op 14-07-2004 10:31 ]


Acties:
  • 0 Henk 'm!

  • marco_balk
  • Registratie: April 2001
  • Laatst online: 20-06 21:52
jurri@n schreef op 14 juli 2004 @ 10:29:
Misschien is dit iets?

MySQL:
1
2
UPDATE tabel SET getal = getal + 100 WHERE getal < 300;
UPDATE tabel SET getal = 100 WHERE naam = 'item3';
Maar dit is niet echt dynamisch en makkelijk herbruikbaar.

Zo is het wat dynamischer...
MySQL:
1
2
3
Select huidigGetal FROM tabel WHERE naam = 'item3';
UPDATE tabel SET getal = getal + 100 WHERE getal < huidigGetal;
UPDATE tabel SET getal = 100 WHERE naam = 'item3';

Het huidigGetal gebruik je dus later in de tweede query om alle voorgaande items op te schuiven....