/ 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
PEAR DB og "ORDER BY COUNT(foo)"
Fra : Henrik Stidsen


Dato : 12-02-04 23:36

Jeg har en SQL streng der giver forskelligt resultat alt efter om den
køres gennem et script der benytter PEAR eller direkte i phpmyadmin.

SQL strengen:
SELECT COUNT(foo), foo FROM foo_bar WHERE oof NOT LIKE 'rab' AND foo
!= 'bar' AND foo GROUP BY foo DESC ORDER BY 'COUNT(foo)' DESC"

I phpmyadmin bliver den sorteret efter optællingsværdien af
COUNT(foo) (altså den der er flest af kommer først). I PHP scriptet
der benytter PEAR DB bliver den ikke sorteret (eller sorteret
forkert)!

Hvordan kan det være ? er det en fejl i PEAR DB ?

Indtil videre har jeg blot undladt at bruge LIMIT selvom jeg kun skal
bruge de 10 første. Dernæst har jeg så sorteret resultatarrayet med
arsort.

--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
http://såkadulæredet.dk/ => http://xn--skadulredet-x8as.dk/

 
 
Mads Lie Jensen (13-02-2004)
Kommentar
Fra : Mads Lie Jensen


Dato : 13-02-04 08:45

On Thu, 12 Feb 2004 22:35:41 +0000 (UTC), Henrik Stidsen
<nospamforme@hs235.dk> wrote:

>Jeg har en SQL streng der giver forskelligt resultat alt efter om den
>køres gennem et script der benytter PEAR eller direkte i phpmyadmin.
>
>SQL strengen:
>SELECT COUNT(foo), foo FROM foo_bar WHERE oof NOT LIKE 'rab' AND foo
>!= 'bar' AND foo GROUP BY foo DESC ORDER BY 'COUNT(foo)' DESC"
>
>I phpmyadmin bliver den sorteret efter optællingsværdien af
>COUNT(foo) (altså den der er flest af kommer først). I PHP scriptet
>der benytter PEAR DB bliver den ikke sorteret (eller sorteret
>forkert)!
>
>Hvordan kan det være ? er det en fejl i PEAR DB ?

Mon ikke det er fordi du har '' omkring COUNT(foo) i ORDER BY-delen?
(Dvs. du sorterer efter strengen 'COUNT(foo)' og ikke efter værdien af
det - og strengen er ens i hver række ...)

Mon ikke noget ala:
SELECT COUNT(foo) AS antal WHERE ... ORDER BY antal DESC;
vil løse det?


--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Kig også ind på http://hjoerringnyplanteskole.dk/

Henrik Stidsen (13-02-2004)
Kommentar
Fra : Henrik Stidsen


Dato : 13-02-04 13:56

Mads Lie Jensen <mads@gartneriet.dk> wrote in
news:fvvo20lvgfigasihdf315vurp4boeutq7f@4ax.com

> Mon ikke det er fordi du har '' omkring COUNT(foo) i ORDER
> BY-delen? (Dvs. du sorterer efter strengen 'COUNT(foo)' og ikke
> efter værdien af det - og strengen er ens i hver række ...)

Det kan godt tænkes - bare mærkeligt at det virkede i phpmyadmin med
den præcis samme streng...

> Mon ikke noget ala:
> SELECT COUNT(foo) AS antal WHERE ... ORDER BY antal DESC;
> vil løse det?

Det virkede i hvert fald - tak for det :)

--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
http://såkadulæredet.dk/ => http://xn--skadulredet-x8as.dk/

Jimmy (13-02-2004)
Kommentar
Fra : Jimmy


Dato : 13-02-04 18:35


"Henrik Stidsen" <nospamforme@hs235.dk> wrote in message
news:Xns948E8DC16673FHS235dk@130.225.247.90...
> Mads Lie Jensen <mads@gartneriet.dk> wrote in
> news:fvvo20lvgfigasihdf315vurp4boeutq7f@4ax.com
>
> > Mon ikke det er fordi du har '' omkring COUNT(foo) i ORDER
> > BY-delen? (Dvs. du sorterer efter strengen 'COUNT(foo)' og ikke
> > efter værdien af det - og strengen er ens i hver række ...)
>
> Det kan godt tænkes - bare mærkeligt at det virkede i phpmyadmin med
> den præcis samme streng...

Nææ - phpmyadmin er en fattigmands-prompt. Den parser SQL'en og ændrer den.
En prompt er det eneste retvisende i en sag med SQL der ikke opfører sig som
man mener det bør.

Mvh
Jimmy



Henrik Stidsen (13-02-2004)
Kommentar
Fra : Henrik Stidsen


Dato : 13-02-04 21:42

"Jimmy" <nyhedsgruppe2001@FJERN.yahoo.co.uk> wrote in
news:c0j1ro$efg$1@sunsite.dk

>> Det kan godt tænkes - bare mærkeligt at det virkede i
>> phpmyadmin med den præcis samme streng...
>
> Nææ - phpmyadmin er en fattigmands-prompt. Den parser SQL'en og
> ændrer den. En prompt er det eneste retvisende i en sag med SQL
> der ikke opfører sig som man mener det bør.

Sådan en har jeg, desværre, ikke lige adgang til - tror jeg ikke...

Følger der en med til MySQL eller skal jeg ud og lede efter den ?

--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
http://såkadulæredet.dk/ => http://xn--skadulredet-x8as.dk/

Jimmy (13-02-2004)
Kommentar
Fra : Jimmy


Dato : 13-02-04 23:04


"Henrik Stidsen" <nospamforme@hs235.dk> wrote in message
news:Xns948EDCB1D3E80HS235dk@130.225.247.90...
> "Jimmy" <nyhedsgruppe2001@FJERN.yahoo.co.uk> wrote in
> news:c0j1ro$efg$1@sunsite.dk
>
> >> Det kan godt tænkes - bare mærkeligt at det virkede i
> >> phpmyadmin med den præcis samme streng...
> >
> > Nææ - phpmyadmin er en fattigmands-prompt. Den parser SQL'en og
> > ændrer den. En prompt er det eneste retvisende i en sag med SQL
> > der ikke opfører sig som man mener det bør.
>
> Sådan en har jeg, desværre, ikke lige adgang til - tror jeg ikke...
>
> Følger der en med til MySQL eller skal jeg ud og lede efter den ?

Den følger med - Man skriver "mysql -p" for at logge ind på den lokale
MySQL-database som root.

Hvis din DB ligger hos en udbyder er det sjældent man har shell-adgang.

phpmyadmin er tilstrækkelig i langt de fleste tilfælde, men hvis man er i
tvivl er den ikke god nok.

Mvh
Jimmy



Peter Brodersen (13-02-2004)
Kommentar
Fra : Peter Brodersen


Dato : 13-02-04 23:30

On Fri, 13 Feb 2004 23:04:24 +0100, "Jimmy"
<nyhedsgruppe2001@FJERN.yahoo.co.uk> wrote:

>Den følger med - Man skriver "mysql -p" for at logge ind på den lokale
>MySQL-database som root.

Nej, så bruges ens nuværende brugernavn blot som mysql-brugernavn
(hvilket så kan være root).

Nogle udbydere, der ikke giver shell-adgang, har dog stadigvæk ladet
deres mysql-server være tilgængelig udefra (bl.a. Tiscali og
Jepponet), så man fra sin egen maskine fx kan køre:

mysql -udbbrugernavn -pdbpassword -hudbyderhost databasenavn

--
- Peter Brodersen

Ugens sprogtip: saltomortale (og ikke saltomotale)

Henrik Stidsen (14-02-2004)
Kommentar
Fra : Henrik Stidsen


Dato : 14-02-04 00:58

"Jimmy" <nyhedsgruppe2001@FJERN.yahoo.co.uk> wrote in
news:c0jhkc$i48$1@sunsite.dk

> Den følger med - Man skriver "mysql -p" for at logge ind på den
> lokale MySQL-database som root.

Lækkert - den kendte jeg ikke

> Hvis din DB ligger hos en udbyder er det sjældent man har
> shell-adgang.

Jeg har en lokal MySQL som jeg udvikler/tester på så i de fleste
tilfælde kan jeg klare mig uden udbyderens i problem-situationer.

--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
http://såkadulæredet.dk/ => http://xn--skadulredet-x8as.dk/

Jimmy (13-02-2004)
Kommentar
Fra : Jimmy


Dato : 13-02-04 23:10


"Henrik Stidsen" <nospamforme@hs235.dk> wrote in message
news:Xns948EDCB1D3E80HS235dk@130.225.247.90...

> Sådan en har jeg, desværre, ikke lige adgang til - tror jeg ikke...
>
> Følger der en med til MySQL eller skal jeg ud og lede efter den ?

Men du kan jo bruge mysqlfront på windows som er et grafisk værktøj ala
phpmyadmin med med en prompt.

Alternativt det værktøj, som MySQL selv har udviklet, men som er Pre-Alpha
og som crahede under login på min computer :-/

Mvh
Jimmy



Henrik Stidsen (14-02-2004)
Kommentar
Fra : Henrik Stidsen


Dato : 14-02-04 00:59

"Jimmy" <nyhedsgruppe2001@FJERN.yahoo.co.uk> wrote in
news:c0jhuk$kpm$1@sunsite.dk

> Men du kan jo bruge mysqlfront på windows som er et grafisk
> værktøj ala phpmyadmin med med en prompt.

Tror jeg klarer mig med mysql -p

> Alternativt det værktøj, som MySQL selv har udviklet, men som er
> Pre-Alpha og som crahede under login på min computer :-/

Så er det vist lige meget :)

--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
http://såkadulæredet.dk/ => http://xn--skadulredet-x8as.dk/

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

Månedens bedste
Årets bedste
Sidste års bedste