Avatar billede homsabu Nybegynder
14. juli 2004 - 23:12 Der er 8 kommentarer og
1 løsning

Udtræk fra MySQL

hello eksperter!

Jeg har en database med ca. denne opbygning

|  id  |  navn  |  by  |

der er rimelig mange rækker i databasen, så jeg vil gerne lave det sådan at jeg først kan lave et udtræk af databasen hvor den lister alle de forskellige byer - MEN.. hvis der er flere der kommer fra samme by skal det bynavn selvfølgelig kun listes én gang... derefter skal man så kunne klikke på et link hvor den viser alle navne fra den by...
det sidste med alle navne fra den givne by kan jeg sagtens selv... men hvordan får jeg lavet et sql-query som tjekker at hver by kun listes én gang???

/Casper
Avatar billede skwat Praktikant
14. juli 2004 - 23:20 #1
select distinct by from .....
Avatar billede avlund Nybegynder
14. juli 2004 - 23:22 #2
Det lyder som om du måske vil have fordel af at bryde dine data op i flere tabeller.

Med det sagt, så kan du jo f.eks. sortere på by i udtrækket og så i PHP sørge for at byen kun bliver udskrevet hvis posten før den ikke var samme by.
Avatar billede homsabu Nybegynder
14. juli 2004 - 23:38 #3
skwat: kan du uddybe... jeg forstår ikke?!
Avatar billede homsabu Nybegynder
14. juli 2004 - 23:39 #4
avlund: jeg vil helst ikke skulle bryde databasen op, da jeg har andre funktioner som jeg ikke kan lave hvis den er brudt op... derudover - har du et forslag til hvordan man får php til at gøre som du siger?
Avatar billede avlund Nybegynder
15. juli 2004 - 01:06 #5
Problemet med skwats løsning er, at du evt. ikke får alle navnene med, men kun ét pr. by.

Det du kan gøre er at lægge bynavnet i en variabel, og så holde denne op mod det næste bynavn. Hvis de matcher, så udskrives det ikke.

Noget á la:

$previous = "";
while( $row = mysql_fetch_row( $rs ) ) {
  if( $rs[2] != $previous ) {
    echo $rs[2];
    $previous = $rs[2];
  }
}
Avatar billede skwat Praktikant
15. juli 2004 - 01:28 #6
Hej Homsabu,

Din sql skal bare være
"select distinct by from tabel" på den måde får du kan alle unikke byer ud.
Avatar billede detox Nybegynder
15. juli 2004 - 02:26 #7
'by' er i øvrigt et reserveret ord i MySQL.
Avatar billede homsabu Nybegynder
15. juli 2004 - 12:48 #8
detox: :-)... hehe... det her er også bare lavet som et eksempel... jeg bruger ikke by i det jeg bruger! :-D

skwat: den løsning du har givet rammer lige præcis hvad jeg skal bruge!!! læg et svar hvis du vil ha' point!!

avlund: jeg har ikke prøvet dit sidste svar hvor du uddyber... det er muligt det også kan bruges, men skwat's gør lige som det skal og er et ret simpelt query!
Avatar billede skwat Praktikant
15. juli 2004 - 14:09 #9
svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester