Avatar billede shjorth Nybegynder
16. marts 2010 - 22:42 Der er 10 kommentarer og
1 løsning

mysql group funktion

Hejsa.

Min db ser nogenlunde således ud:
[id] - [navn1] - [navn2]

Jeg skal nu lave en select liste som indeholder alle unikke navne fra både navn1 og navn2.

Umidlebart forsøgte jeg mig med
SELECT navn1,navn2 AS alle_navne FROM table GROUP BY alle_navne

Men det virkede selvsagt ikke.

Er der nogen der kan hjælpe mig på rette spor ?

Mange tak :)
Avatar billede 2c Nybegynder
16. marts 2010 - 22:54 #1
Hvad med:

SELECT DISTINCT navn1,navn2 FROM table

?
Avatar billede shjorth Nybegynder
16. marts 2010 - 22:56 #2
Det er muligt det virker, men det næste er så at jeg skal have navn1 og navn2 ned i $row[xx], således at jeg kan lave løkken og smide navnene ud.

Ved du hvordan det kan gøres ?
Avatar billede public2 Nybegynder
16. marts 2010 - 22:57 #3
Eller begge to:

SELECT DISTINCT (navn1, navn2) FROM table GROUP BY navn;
Avatar billede public2 Nybegynder
16. marts 2010 - 23:05 #4
$result = mysql_query($sql);

echo '<select name="navn" id="navn">';

while( $row = mysql_fetch_array($result) ){

echo '<option value="'.$row['navnID'].'">'.$row['navn'].'</option>';

}

echo '</select>';

Er det noget i den stil du tænker på?
Avatar billede shjorth Nybegynder
16. marts 2010 - 23:18 #5
Det virker faktisk super.

Lige et sidste spørgsmål. Er denne metode også mulig hvis nu de i modsætning til navn1,navn2 hed afrejse_by,ankomst_by ?
Hvis ikke, ved du så hvordan jeg skal gøre det ?
Avatar billede public2 Nybegynder
16. marts 2010 - 23:35 #6
Kommer an på om du mener i din SQL sætning eller i din select eller hvordan du opbygger det.

Du kan sagtens finde både afrejse by og ankomst by i samme query.
Avatar billede shjorth Nybegynder
17. marts 2010 - 02:09 #7
Men det jeg skal have er en GROUP af afrejse_by og ankomst_by i samme SELECT query.

Jeg skal altså have en select boks af de unikke byer der ligger i afrejse_by og ankomst_by, således man kan se alle repræsenterede byer.
Avatar billede public2 Nybegynder
17. marts 2010 - 13:09 #8
Du kan gruppere med flere attributter, så du siger:

SELECT DISTINCT afrejse_by, ankomst_by FROM table GROUP BY afrejse_by, ankomst_by

Der er naturligvis en prioritering af grupperingen, afrejse_by først og ankomst_by efter, men den vil gruppere det.
Avatar billede shjorth Nybegynder
18. marts 2010 - 02:57 #9
Yes. Næste dillemma er så at smide afrejse_by, andkomst_by ned i een, således at jeg kan hente den fra f.eks $row['byer'];. Så hvordan kan jeg smide afrejse_by, ankomst_by ned i een ?

I øvrigt bør du smide et svar så jeg kan give dig points :D
Avatar billede public2 Nybegynder
18. marts 2010 - 07:01 #10
Tror ikke helt jeg forstår...

Ned i een hvad? Variabel, array?

Og du for lige et svar
Avatar billede shjorth Nybegynder
18. marts 2010 - 15:32 #11
Ja præcis.. Jeg skal have afrejse_by og ankomst_by AS byer.


SELECT DISTINCT afrejse_by, ankomst_by FROM table GROUP BY afrejse_by, ankomst_by

og resultatet af queryen skal jeg så kunne hente som $row['byer']. Altså resultatet af både afrejse og ankomst.. Håber det giver mening :D

og tak for 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