Avatar billede kimox Nybegynder
28. april 2011 - 00:16 Der er 7 kommentarer og
1 løsning

hjælp til order by

Jeg kan simpelthen ikke komme i tanke om hvad jeg gør i min query:

$sql = mysql_query("SELECT * FROM an WHERE anby = $id ORDER BY medrang");

når jeg skal have min ORDER BY medrang,til at starte fra 2 og ikke med nr. 1 - men nr. 1 skal stadig vises bare først efter nr. 2...
Avatar billede danco Nybegynder
28. april 2011 - 00:35 #1
Umiddelbart er mit bud også at du er nødt til at håndtere det i din PHP kode. Generelt kan man jo sige at det også er mest logisk at lade din logik håndtere hvordan visningen skal være.  Det er jo overhovedet ikke databasens formål at levere en liste i den rækkefølge som du vil vise den.
Avatar billede phillips Nybegynder
28. april 2011 - 05:40 #2
$sql = mysql_query("SELECT * FROM an WHERE anby = $id ORDER BY medrang DESC");
Avatar billede The_Buzz Novice
28. april 2011 - 07:06 #3
ASC = Ascending (Normal rækkefølge)
DESC = Descending (Omvendt)

Orderby medrang desc, anby asc

vil sortere efter medrang omvendt og dernæst anby asc (hvis der er to medrang med samme værdi
28. april 2011 - 07:24 #4
kimox, skal spoergsmaalet forstaas saaledes at du vil have nummer 2 medrang foerst, dernaest nummer 1, og derefter nummmer 3, 4, 5, o.s.v.?  Altsaa hvis du har disse vaerdier i din tabel:

anby medrang
7        12
7        14
7        3
7        8

saa vil du vise resultatet i denne raekkefoelge:

anby medrang
7        8
7        3
7        12
7        13

I saa fald maa du nok dele queryen i tre dele og forene dem med UNION:

$sql = mysql_query("
SELECT * FROM an WHERE anby = $id ORDER BY medrang LIMIT 1, 1
UNION
SELECT * FROM an WHERE anby = $id ORDER BY medrang LIMIT 1
UNION
SELECT * FROM an WHERE anby = $id ORDER BY medrang LIMIT 2, 1000
");

Foerst springer du det foerste resultat over og tager nummer to resultat.  Derefter tager du det foerste resultat.  Til slut springer du de foerste to resultater over og tager resten.  Hvis der kan vaere mere end 1000 resultater maa du vaelge et stoerre nummer.
30. april 2011 - 07:06 #5
kimox, fik du mit indlaeg #4?  Havde jeg forstaaet problemstillingen korrent? (at du foerst vil have nummer 2, derefter nummer 1, og derefter resten i raekkefoelge).  Hvis ja, kunne du saa bruge mit forslag?  Hvis nej, forklar saa problemstillingen lidt mere tydeligt.
Avatar billede kimox Nybegynder
02. maj 2011 - 21:09 #6
hej,

beklager vente tiden, men har ligget syg..

Det jeg skal hente det er nogen medarbejderes stilling (medrang) i min DB.

rang liste:

1= Økonomi
2= Indehaver/Direktør
3= tolk
4= bla
5= bla bla

men i det udtræk jeg laver på siden vil jeg selvfølgelig gerne have at indehaveren står øverst på listen. Men fordi jeg var en klovn og sætte "indehaver" som nr. 2. så er jeg for doven til at ændre en masse sider+script så indehaver kan få nr 1 ..

derfor søger jeg hjælp til at sql sortere i medrang først..

så det ser sådan ud:

2
1
3
4
5
6
osv.

eller
2
3
6
5
1
osv osv.

det er lige meget hvordan de står under nummer 2.. bare den er øverst :o)
02. maj 2011 - 22:40 #7
I saa fald foreslaar jeg dette.  Foerst soege efter den hvor medrang = 2 og derefter soege efter de hvor medrang er forskellig fra 2 uden nogen orden.
Avatar billede kimox Nybegynder
02. maj 2011 - 23:07 #8
okay, jeg forsøger mig frem med en af de 2 muligheder du har skrevet.

mange tak for hjælpen !

-lukket-
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