22. august 2006 - 22:39Der er
15 kommentarer og 1 løsning
Sortering af data fra mysql tabel
Hej
Jeg har en database med opskrifter. I den er der bl.a. angivet hvor mange stjerner en opskrift har fået. I opskrift tabellen gemmes id fra en tabel kaldet stjerner. Det er gjort sådan så man kan ændre antallet af stjerne mv senere.
Nu skal opskrifterne vises på en side og sorteres efter stjerner.
Hvordan gøres dette?
Hvis jeg blot skriver SELECT * FROM opskrifter ORDER BY stjerner så sortere den jo efter id fra stjerner tabellen som er gemt i opskrift tabellens felt stjerner.
Meningen er jo selvfølgelig at den skal sortere efter feltet antal i tabellen stjerner frem for efter id.
Hvis du er i tvivl om hvad jeg mener så spørg endelig
Jeg ved ikke om jeg forstår dig rigtig. Nedenståeende kan bruges hvis du har 1 record for hver stjerne:
SELECT * FROM opskrift, (select stjerner, count(stjerner) as antal from stjerner group by stjerner ) a WHERE opskrift.stjerner = a.stjerner ORDER BY a.antal
Har to tabeller (forenkler dem her): 1: Opskrifter id (auto - unikt) Opskrift (selve opskriften) stjerner (her i gemmes id fra tabellen stjerner)
2: Stjerner id (auto - unikt) antal (her gemmes antal og det er denne den skal sortere efter)
Hvis jeg laver en SQL på tabellen opskrifter som denne SELECT * FROM opskrifter ORDER BY stjerner sorteres den derfor reelt efter tabellen Stjerner's id felt.
Grunden til det er lavet i to tabeller og det er id som bruges er at der så frit kan ændres på navne, antal poster osv i antal, og de kan nemt vælges fra liste når man tilføjer opskrifter
Selvfølgelig lorentsnv :) - Point hvis du lige skriver et svar :)
Shooka - Hvordan det. Hvis man i stjerner har: ID Antal 1 10 2 9 3 8 osv osv osv...... hvad skal der så stå i opskriftid? Bare alle numrene på de opskrifter som hører til den karakter eller hvad?
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.