Det virker sådan set fint nok. Nu har jeg så eksperimenteret lidt med at lave en funktion som skal styre i hvilken rækkefølge menupunkterne skal komme. Så det ikke bare er efter id, eller navn. Men efter en givet række følge. Til dette har jeg order. Som i min "tilføj menupunkt"-funktion har samme nummer som id´et.
Nu er mit spørgsmål så hvordan jeg skal formulere en funktion til styring af rækekfølgen. Der behøves ikke så meget en php-kode. Men bare en skriftlig formulering af hvordan dette kan gøres? Er nemlig helt på bar bund!
Min problemstilling er at man på en eller anden måde ikke må få dubletter af order nummerne!
mysql> select * from kajak_menu; +----+-------------+-----------+-------+ | id | navn | link | order | +----+-------------+-----------+-------+ | 31 | Menupunkt 2 | test2.php | 2 | | 32 | Menupunkt 1 | test1.php | 1 | | 33 | Menupunkt 3 | test3.php | 3 | +----+-------------+-----------+-------+ 3 rows in set (0.00 sec)
Det du skal tænke er følgende: "Jeg vil rykke menupunkt 1 OP". Dette gør du ved at bytte om på order for "Menupunkt 2" og "Menupunkt 1", altså udføre følgende queries:
UPDATE kajak_menu SET `order` = 1 WHERE id = 32; UPDATE kajak_menu SET `order` = 2 WHERE id = 31;
Herefter vil din tabel se således ud: mysql> select * from kajak_menu; +----+-------------+-----------+-------+ | id | navn | link | order | +----+-------------+-----------+-------+ | 31 | Menupunkt 2 | test2.php | 2 | | 32 | Menupunkt 1 | test1.php | 1 | | 33 | Menupunkt 3 | test3.php | 3 | +----+-------------+-----------+-------+ 3 rows in set (0.00 sec)
På den måde vil du ikke få dubletter i dit system. Du skal så efterfølgende indføre tjek, således at der ikke kan rykkes henholdsvis op og ned hvis punktet enten er øverst eller nederst.
Hvad sker der ved at have dubletter af order? det eneste der sker hvis du feks har 2 punkter med hvor deres order er 1, bliver de bare listet efter id'et
her vil menupunkt 1, blive listet først, eftersom, at den har det mindste ID.
Så du kan jo lave en side, hvor du lister din menu, efter order, og efter hver linje har du en knap 'OP' som trækker 1 fra order, og en knap 'NED' som lægger 1 til order
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.