11. februar 2004 - 10:27Der er
7 kommentarer og 1 løsning
Udregn perfekt fremvisning i <table>
Hejsa,
Jeg har følgende udfordring: Jeg har 2 MySQL-tabeller, én som indeholde en række data og én som indeholder de kategorier data er ordnet efter.
Jeg skal så generere et html-output, som fylder disse data ud i en tabel(<table>) med 3 kolonner. Kategorierne skal placeres så der tages hensyn til hvor mange data der er i hver af dem - så alle 3 kolonner har nogenlunde lige mange data.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg havde faktisk samme problem da jeg lavede et link system med tilhørende kategorier. Dog skulle jeg kun bruge 2 kolonner. Man kan selvfølig vælge at putte det skiftesvis i hver kolonne, men som sagt, så risikerer du at højden på kolonnerne kommer til at varierer kraftigt. Jeg løste mit problem ved at indse at rent herustics vil de ikke ændre det store om man putter dem skiftevis, frem for at beregne det (havde kun 2 kolonner, så mit problem var en del enkler).
Jeg ville nok ikke gøre som jeg gjorde (og som du sikkert selv har tænkt på at gøre), da sandsynlighedden for at 3 kolonner er nogenlunde lige store, ikke er lige så sandsynlig som at 2 kolonner er lige store.
Jeg ville hvis nok først hive alt den data jeg skulle bruge ud, og sorterer det i 3 arrays, så outputtet (altså dataen i de 3 kolonner) ville blive lige store.
Det er faktisk ikke et trivielt problem du har rodet dig ud i der. Først tager vi lige nogen overvejelser: Først henter du alt dataen du skal bruge ud af databasen, og lægger det over i et array. Dernæst kan du ved at tælle antallet af elementer i arrayet finde ud af hvor mange elementer som skal puttes i hver kolonne for at kolonnerne bliver lige store (eriks opdelingssted). Spørgsmålet er nu, hvordan sørger vi for at alle kolonner bliver lige store? Er det lige meget hvor kategorier der er i hver kolonne? eller skal der være nogenlunde lige mange?
Det nemmeste her, er at tage den største kategori (talt ud fra antallet af Data elementer i kategorien) og putte den i kolonne 1. Fortsæt med at tage den største kategori ud og put i kolonne 1, indtil at du vil gå over dit opdelingssted. Se om der findes en kategori med den størrelse som passer lige til opdelingsstedet, ellers brug den største som er mindre end det du mangler for at nå opdelingsstedet.
Gør det samme for kategori 2 og 3.
Det er klart der kan opstå nogen kedelige tilfælde hvis kategoriernes størrelse er fordelt uheldigt. Hvis du vil være på den sikre side, skal du nok ud i en algoritme som tjekker samtlige kombinations mulighedder og vælger den bedste. Men det er nok overkill for at få det formateret flot.
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.