23. marts 2010 - 10:05Der er
12 kommentarer og 1 løsning
PHP musik playlist i MySQL. Ændre plads på sang på nemmeste måde?
Hej Eksperter!!
Jeg har et lille "tænke problem" i måske kan hjælpe mig med.
Jeg er er ved at lave en playlist for en kammerat til noget musik på hans hjemmeside, og sangene har et sangnummer hvori der står hvilket nummer på playlisten de er.
Problemet er så:
Vil lave så man kan ændre en sangs plads på playlisten. Så sang 10 bliver sange 9 i stedet ved at trykke på "pil op", og knappen i sig selv kan jeg sagtens lave. Men hvordan gemmer jeg smartest muligt hvor sangene skal ligge, uden at skulle opdaterer næsten alle sangene på playlisten. Hvis jeg f.eks ændre sang 7, til sang 6, så er jeg nødt til at ændre plads på sang 6, 7, 8 , 9 og 10 (hvis der er 10 sange på listen). Vil gerne slippe for dette, så man kun skal ændre pladsen på sang 7, og måske sang 6?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Aaaah. Det er selvfølgelig rigtigt når man gør det sådan.
Det jeg også mente med det var hvis man flyttede en sang mere end en plads. Hvis man f.eks har 1000 sange, og flytter sang 1000 til plads 1.. Så er man nødt til at opdaterer alle 1000 sange?
Jah, men den ville så ændre i alle 1000 sange ikke? Jeg tænkte om det var en måde at slippe for det på? Tænkte mere på hastigheden af serveren, hvis der er mange mennesker der bruger hver sin playlist, og alle har 1000 sange de flytter rundt på. ;)
Jeg har auto increment på et id som er på alle sangene på playlisten. Så har jeg sang navnet på sangen. Destinationen på sangen Og som det sidste felt har jeg ID'et på den NÆSTE sang på listen.
På den måde skal jeg kun opdaterer 3 felter når jeg flytter en sang.
Hvis jeg flytter sang på plads 7 til plads 3, skal jeg opdaterer sang 7 til at pege på sang 4. sang 6 til at pege på sang 8, og sang 2 til at pege på sang 7. Når jeg siger "pege på", mener jeg ID'et, som jo er forskelligt på alle sange. Så er det problem løst. ;)
Men hvordan laver jeg en SELECT som tager sangene ud i den rækkefølge som det sidste felt angiver? ;)
Hvis jeg flytter sang på plads 7 til plads 3, skal jeg opdaterer sang 7 til at pege på sang 4. sang 6 til at pege på sang 8, og sang 2 til at pege på sang 7. Når jeg siger "pege på", mener jeg ID'et, som jo er forskelligt på alle sange.
det fatter jeg ikke noget af...
alle sange mellem 3 og 7 skal opdateres, da de alle får nye pladser
Håber du forstå hvad jeg mener. :) Der er man kun nød til at ændre på 3 ID'er. :)
Problemet er bare at man ikke kan lave en SELECT fra PHP. 1. fordi at man ikke ved hvilken sang der er nr 1 på playlisten. 2. fordi man ikke kan sorterer sangene.
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.