/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvordan får man nogle bestemte ord først i~
Fra : EnjoyNews


Dato : 20-01-06 16:02

Hej NG

Jeg har været ude for at skulle have et bestemt ord sidst i en MySQL liste,
og har lavet det sådan her:
SELECT * from Kategori ORDER BY case when Subkategori = 'Andet' then 1 else
0 end, Subkategori

Dette virker fint, og alle andre ord end 'Andet' bliver sat i alfabetisk
orden først, og Andet kommer så til sidst.

MEN nu har jeg brug for at have flere ord sat ind i bestemt rækkefølge.
Altså ex. at 'ord 1' skal komme først, 'ord 2' kommer nummer 2 og 'ord 3'
som nummer 3. Derefter skal alle andre ord bare i alfabetisk orden.

Med et enkelt ord man vil have først laves det jo så bare sådan her.
SELECT * from Kategori ORDER BY case when Subkategori = 'ord 1' then 0 else
1 end, Subkategori

Men jeg kan ikke få flere ord med i.
Jeg har prøvet med
SELECT * from Kategori ORDER BY case when Subkategori = 'ord 1' then 0 end,
case when Subkategori = 'ord 2' then 1 end, Subkategori

Men det virker ikke ?

Jeg har også prøvet med
SELECT * from Kategori ORDER BY case when Subkategori = 'ord 1' then 0 else
case when Subkategori = 'ord 2' then 1 end, Subkategori

Det virker heller ikke. Og jeg har prøver på flere andre måder uden held.


Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?

vh
Michael





 
 
Peter Brodersen (20-01-2006)
Kommentar
Fra : Peter Brodersen


Dato : 20-01-06 17:20

On Fri, 20 Jan 2006 16:01:47 +0100, "EnjoyNews" <mh-nyheder@mail.dk>
wrote:

>Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?

Først og fremmest har det ikke noget med PHP at gøre, så der er større
chance for held i nyhedsgruppen dk.edb.database

Derudover: Det er måske lettest for dig blot at bruge funktionen
FIELD():
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

==
FIELD(str,str1,str2,str3,...)

Returns the index (position) of str in the str1, str2, str3, ... list.
Returns 0 if str is not found.
==

Så kan du fx lave:

... ORDER BY FIELD(Subkategori,'ord 1','ord 2','ord 3'), Subkategori

--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

EnjoyNews (21-01-2006)
Kommentar
Fra : EnjoyNews


Dato : 21-01-06 14:12


"Peter Brodersen" <usenet2006@ter.dk> skrev i en meddelelse
news:dqr2le$nia$3@news.klen.dk...
> On Fri, 20 Jan 2006 16:01:47 +0100, "EnjoyNews" <mh-nyheder@mail.dk>
> wrote:
>
> >Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
>
> Først og fremmest har det ikke noget med PHP at gøre, så der er større
> chance for held i nyhedsgruppen dk.edb.database

?? Hvorfor har det ikke noget med PHP at gøre.
Styrringen af hvad der skal udskrives på skærmen fra databasen, bliver da
lavet i PHP.
Og mysql_query kommandoen der bruges til det er da en PHP kommando. ?


>
> Derudover: Det er måske lettest for dig blot at bruge funktionen
> FIELD():
> http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
>
>
> Så kan du fx lave:
>
> .. ORDER BY FIELD(Subkategori,'ord 1','ord 2','ord 3'), Subkategori

Og så tusind tak for denne info. Jeg kendte ikke denne kommando, men den
virker og det var lige hvad jeg skulle bruge.



Bent Stigsen (22-01-2006)
Kommentar
Fra : Bent Stigsen


Dato : 22-01-06 04:25

EnjoyNews wrote:
> "Peter Brodersen" <usenet2006@ter.dk> skrev i en meddelelse
> news:dqr2le$nia$3@news.klen.dk...
>
>>On Fri, 20 Jan 2006 16:01:47 +0100, "EnjoyNews" <mh-nyheder@mail.dk>
>>wrote:
>>
>>>Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
>>
>>Først og fremmest har det ikke noget med PHP at gøre, så der er større
>>chance for held i nyhedsgruppen dk.edb.database
>
> ?? Hvorfor har det ikke noget med PHP at gøre.
> Styrringen af hvad der skal udskrives på skærmen fra databasen, bliver da
> lavet i PHP.
> Og mysql_query kommandoen der bruges til det er da en PHP kommando. ?
[snip]

Peter gav dig høfligt et godt råd til dit eget bedste. Et tak ville
have været bedre, end at prøve at retfærdiggøre din egen fejl.

Du burde egentlig ikke være i tvivl om at det er rigtigt, at det slet
ikke har noget med PHP at gøre. I dit oprindelige indlæg havde du et
sql problem som du præsenterede uden overhovedet at nævne PHP,
refererede specifikt til "den måde", og sql-svaret du fik af Peter
løste tilsyneladende også dit problem.

Hvis vi slækker på "har at gøre med", så har dit spørgsmål ligeså
meget "at gøre med" c, c++, perl eller hvilket som helst andet sprog,
som giver mulighed for database adgang. Men rådet ville stadig være
det samme, find den gruppe spørgsmålet er tættest relateret til.

/Bent

EnjoyNews (23-01-2006)
Kommentar
Fra : EnjoyNews


Dato : 23-01-06 01:12


> >>
> >>>Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
> >>
> >>Først og fremmest har det ikke noget med PHP at gøre, så der er større
> >>chance for held i nyhedsgruppen dk.edb.database
> >
> > ?? Hvorfor har det ikke noget med PHP at gøre.
> > Styrringen af hvad der skal udskrives på skærmen fra databasen, bliver
da
> > lavet i PHP.
> > Og mysql_query kommandoen der bruges til det er da en PHP kommando. ?
> [snip]
>
> Peter gav dig høfligt et godt råd til dit eget bedste. Et tak ville
> have været bedre, end at prøve at retfærdiggøre din egen fejl.

jeg skrev da også pænt tak for hans hjælp, med en fin smiley bagefter.


>
> Du burde egentlig ikke være i tvivl om at det er rigtigt, at det slet
> ikke har noget med PHP at gøre. I dit oprindelige indlæg havde du et
> sql problem som du præsenterede uden overhovedet at nævne PHP,
> refererede specifikt til "den måde", og sql-svaret du fik af Peter
> løste tilsyneladende også dit problem.
>
> Hvis vi slækker på "har at gøre med", så har dit spørgsmål ligeså
> meget "at gøre med" c, c++, perl eller hvilket som helst andet sprog,
> som giver mulighed for database adgang. Men rådet ville stadig være
> det samme, find den gruppe spørgsmålet er tættest relateret til.
>
> /Bent

Undskyld men jeg tror vi går forbi hinanden.
Jeg spurgte hvorfor det ikke var det rigtige sted, så jeg kunne være bedre
til at ligge det rigtigt næste gang.
Jeg forstår stadig ikke hvorfor, så hvis jeg skal have en mulighed for at
ligge mine spørgsmål rigtigt i fremtiden, bliver jeg altså nødt til at
spørge igen.

Jeg har lavet min side i PHP, og MySQL databaser er da en del af PHP eller ?
Selvom jeg måske har misforstået det, og disse databaser også bruger af
andre sprog, så er min side jo lavet med PHP, og jeg skulle derfor bruge
hjælp til hvordan man gjorde det i PHP sprog. Derfor spurgte jeg i en PHP
nyhedgruppe. Hvordan kan det være forkert ?

Jeg spurgte jo specifikt til en linie i mit script som jeg mener er PHP
sprog, nemlig
SELECT * from Kategori ORDER BY case when Subkategori = 'Andet' then 1 else
0 end, Subkategori
Dette bruger man da ikke i andre sprog eller er jeg forkert på den ?
Hvis jeg spurgte i en database gruppe var det jo ikke sikkert at jeg fik et
svar tilbage om hvordan man gjorde i PHP, men i perl måske. Og det kan jeg
jo ikke bruge.
Og selvom jeg skrev at det skulle være i PHP, giver det da mest mening at
folk i en PHP gruppe er bedre til PHP sprog end folk i en general database
gruppe. ?


I hvertfald, så spørger jeg fordi jeg stadig ikke kan se hvorfor mit indlæg
ligger i en forkert gruppe, og jeg bliver jo nødt til at vide hvorfor så jeg
kan lære af det.

Så der er og var intet ond i mit svar, og jeg skrev da også pænt tak for
hans hjælp, med en fin smiley bagefter.




Benny Nissen (23-01-2006)
Kommentar
Fra : Benny Nissen


Dato : 23-01-06 01:20

EnjoyNews wrote:

> Jeg spurgte jo specifikt til en linie i mit script som jeg mener er PHP
> sprog, nemlig
> SELECT * from Kategori ORDER BY case when Subkategori = 'Andet' then 1 else
> 0 end, Subkategori
> Dette bruger man da ikke i andre sprog eller er jeg forkert på den ?

Ja, du er forkert på den.
Ovenstående linie er SQL og har ikke speficikt noget med PHP at gøre.

> Hvis jeg spurgte i en database gruppe var det jo ikke sikkert at jeg fik et
> svar tilbage om hvordan man gjorde i PHP, men i perl måske. Og det kan jeg
> jo ikke bruge.

Jo. SQL-sproget er det sammen unaset om du bruger PHP, ASP. Perl eller
ligen.

> Og selvom jeg skrev at det skulle være i PHP, giver det da mest mening at
> folk i en PHP gruppe er bedre til PHP sprog end folk i en general database
> gruppe. ?

Nej, hvis du skal have hjælp til databaser er det da smartest at spørge
i gruppen om databaser.

> I hvertfald, så spørger jeg fordi jeg stadig ikke kan se hvorfor mit indlæg
> ligger i en forkert gruppe, og jeg bliver jo nødt til at vide hvorfor så jeg
> kan lære af det.

Håber du har fået lidt ud af ovenstående.


--
Benny Nissen

Bent Stigsen (23-01-2006)
Kommentar
Fra : Bent Stigsen


Dato : 23-01-06 07:51

EnjoyNews wrote:
>>>>>Derfor spørger jeg om det slet ikke muligt at gøre det på den måde ?
>>>>
>>>>Først og fremmest har det ikke noget med PHP at gøre, så der er større
>>>>chance for held i nyhedsgruppen dk.edb.database
>>>
>>>?? Hvorfor har det ikke noget med PHP at gøre.
>>>Styrringen af hvad der skal udskrives på skærmen fra databasen, bliver da
>>>lavet i PHP.
>>>Og mysql_query kommandoen der bruges til det er da en PHP kommando. ?
>>
>>[snip]
>>
>>Peter gav dig høfligt et godt råd til dit eget bedste. Et tak ville
>>have været bedre, end at prøve at retfærdiggøre din egen fejl.
>
> jeg skrev da også pænt tak for hans hjælp, med en fin smiley bagefter.

Jeg er også sikker på at du blev glad for hans hjælp, men du virkede
og virker stadig, ret uvillig til at acceptere, at der er et andet
sted, hvor dit spørgsmål havde været mere passende og bedre for din
egen og andres skyld.

Det er ikke altid lige nemt at have overblikket over hvordan tingene
hænger sammen indenfor edb, med mindre det ligefrem er ens arbejde,
uddannelse eller at man virkelig har brugt megen tid på det. Og selv
garvede hunde på ukendt grund, går forkert en gang imellem. Det er
også derfor dem der skulle komme til at poste i en forkert gruppe,
enten høfligt bliver ignoreret eller får en høflig henvisning til at
starte med. Og så er det sådan set bare at acceptere det. Du kan
insistere på at stille dine spørgsmål der hvor du lige synes og mener,
men til hvad nytte hvis der er ingen der ønsker eller kan svare på
det, der hvor *du* mener det er det rigtige sted.

[snip]
> Undskyld men jeg tror vi går forbi hinanden.
> Jeg spurgte hvorfor det ikke var det rigtige sted, så jeg kunne være bedre
> til at ligge det rigtigt næste gang.
> Jeg forstår stadig ikke hvorfor, så hvis jeg skal have en mulighed for at
> ligge mine spørgsmål rigtigt i fremtiden, bliver jeg altså nødt til at
> spørge igen.

Ærlig talt gider jeg ikke tage den dans du har gang i.

Du fik et råd.
Du ved det er en database du har fat i.
Du ved PHP's mysql_query bruges til "det" (dit sql spørgsmål).
Du ved at hvad der følger efter "bliver da lavet i PHP"

Så er du også fuldt ud i stand til at følge rådet. Alt hvad angår
"det", hører til i "dk.edb.database" (eller evt. alternativer som
alt.php.sql, comp.databases.mysql)

End of story.


/Bent


[snip]

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste