10. oktober 2003 - 15:08Der er
4 kommentarer og 1 løsning
sortering efter rummål
Sidder med en lidt sjov problemstilling som jeg er ved at give op overfor.
Jeg har en mySQL Database hvor jeg skal trække en liste ud med nogle kasser sorteret efter rummål.
SELECT produktID, produktInfo, Salgspris FROM produkter WHERE produkttype='kasser'
produktinfo indeholder dimensionerne på kassen i formatet '100 x 50 x 50 cm.' ud fra dette kan jeg så regne selve rummålet ud. (100*50*50/1000)
Problemet er som sagt at jeg godt kunne tænke mig at kunne sortere listen med kasser efter rummål.
Kan jeg på nogen måde lave et ekstra "kunstigt" felt i mit recordset som jeg så editere med værdien af regnestykket UDEN at lave ændringer i databaseoplysningerne?
Umiddelbart er den eneste måde jeg kan se at løse problemet på et rigtig usexet Array, hvilket jeg naturligvis gerne vilundgå at kaste mig ud i.
Du kan benytte en lidt improviseret løsning med funktionen SubString() i dit statement, men det bliver noget bøvl, synes jeg. Opdel hellere dine mål i tre kolonner (bredde, højde, dybde):
B H D
Herefter burde du kunne lave følgende statement:
Select produktID, produktInfo, Salgspris, (B * H * D) As Rummaal From produkter Where produkttype = 'kasser' Group By produktID, produktInfo, Salgspris Order By Rummaal Desc
Hvis du ikke vil ændre i tabellen, kan du tilføje det nye omtalte felt med rummål, som du opdaterer samtidig med, at du indsætter dimensionerne.
jeg vil også mene at hvis du vil undgå at bruge et array hvor du sidder skal til at splitte og efterfølgende sortere - ja så er det nemmere at "støbe" i databasen og så bare styre outputtet så det står i det format du gerne vil have.
forstår dog ikke helt hvad netro vil med sin group by! Jeg går udfra at produktID'et er unikt.
Men anyways så kan du jo selv efterfølgende smide en <% orderby %>'-variable ned i sql'en så den kan sortere på kryds og tværs af hvad du vil have den til.
netro: Vi må gå ud fra at nidkin har givet point til den person der har hjulpet ham bedst. Det ville måske nok have været mest hensigtsmæssigt at dele pointene mellem jer da i supplerer hinanden godt, men vi mener ikke der er gjort noget direkte forkert i dette spørgsmål.
Nej, det er der måske ikke, men man savner lidt feedback fra spørger...
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.