10. december 2003 - 17:50Der er
18 kommentarer og 1 løsning
indviklet sortering
Her er en krøllet opgave:
Jeg skal lave en bibliografi (en fortegnelse over bøger). Hver titel indeholder oplysninger om forfatternavn, titel, år osv. Og alle titlerne skal generelt ordnes alfabetisk efter forfatterefternavn. Så langt, nemt nok. Men det forekommer at samme forfatter har flere titler på listen. De skal så yderligere sorteres efter år, med de tidligste først og de seneste derefter. Endvidere kan en forfatter godt have udgivet flere titler samme år, men markerer dette ved bogstaver efter årstal, altså f.eks.: 2003a, 2003b osv.
Men der er yderligere en krølle. En forfatter kan foruden de bøger han selv har udgivet have udgivet nogle sammen med andre medforfattere. Disse skal placeres i listen umiddelbart efter de bøger han er alene om, og hvis der er flere af den slags skal de ordnes efter efternavnet på den anden forfatter og evt. yderligere efter år hvis der er flere af de samme to forfattere.
Et eks.:
Hansen, M., 2001. Ølbrygningens glæder. Hansen, M., 2002a. Mit liv. Hansen, M., 2002b. Skæge forviklinger. Hansen, M. & Jakobsen, O., 1999. De sværeste valg. Hansen, M. & Jakoby, F., 1995. Seljsport. Hansen, M. & Nielsen, P., 1997. Min mening. Ivanof, K., 1958. Ruslands historie.
Det simpleste er jo selvfølgelig at nummerere alle titler. Men så har man ikke fordelen ved den automatiske sortering. F.eks. hvis man senere vil tilføje en titel. Så skal den jo det rigtige sted ind i rækkefølgen. Og dvs. man skal ændre ved numrene for alle de andre. Derfor ville en sortering efter kriterierne ovenfor være bedre i det lange løb.
Er der nogle der kunne tænke sig lidt hjernepusleri her op til jul, så er her en opgave.
vil ORDER BY forfatter,år også klare det med at hvis der er to forfattere skal der yderligere ordnes efter den anden forfatters efternavn? Hvert forfatternavn er jo sat ind i et felt for sig.
Jeg forstår ikke helt din anden kommentar. Hvordan sættes dette ind i en forspørgsel?
"Hansen, M. & Jakobsen, O." antydede jo at alle forfatternavnene var i et felt.
Hvis det ikke er tilfældet men at der er separate forfatter og bog tabeller og en forfatterbog tabel for at mappe M:M relationen, så *er* det vanskeligt at få det output du vil have.
Min anden kommentar var bare argument for at soretingen ville være rigtig.
jeg sætter hvert forfatternavn ind i et celle for sig. Derfor kan jeg ikke sortere som arne_v foreslår. Jeg har nogle felter der hedder forfatter_1, forfatter_2, forfatter_3 osv. i alt fire + et der bare skriver "og flere", hvis der er flere
Jo men det jeg har skrevet er det endelige output når felterne yderligere har været igennem en php kommando. I tabellen står hver forfatter i sin egen celle.
Hvis du ikke vil lave om på strukturen (hvilket dog nok kan anbefales) skal du ikke vist ikke gøre dig forhåbning om at gøre dit i en SQL-sætning. Du kan sikkert gøre det i det bagvedliggende programmeringssprog.
Synes godt om
Slettet bruger
10. december 2003 - 21:04#16
Hvis jeg skulle lave det, ville jeg nok smide det i 3 tabeller.
Forfattere: ------------ forfatterid navn andre felter med forfatteroplysninger
Bøger: ------- bogid titel årstal ISBN andre felter med bogoplysninger
forfatterbog ------------- forfatterid bogid
Der kommer så en række pr. forfatter for hver bog i den sidste tabel.
Eventuelt ville jeg lave et forfatterid-felt i bogtabellen også, for at kunne specificere den primære forfatter.
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.