SQL count + round()

Tags:    php sql mysql

<< < 12 > >>
Hej Udviklere!

Jeg har mit lille script her, som tæller antal rows i min database - jeg har leget lidt med ROUND(), men er lidt i tvivl om det kan bruges her!

Fold kodeboks ind/udPHP kode 


Når jeg echo'er $totalPictures, får jeg det eksakte antal rows i databasen - p.t. 625. Hvis jeg nu gerne vil runde op eller ned - i mit nuværnede tilfælde til 600, hvad kræves der så for dette?

På forhånd mange tak!
God weekend, og pas godt på jer selv :-)

Mvh,
Rai.



16 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 18 karma
Sorter efter stemmer Sorter efter dato
Kristian - hvis vi skal være pernitne omkring - så ville jeg undlade COUNT på et wildcard, da MySQL tæller på alle kolonner i et datasæt. ;) Begræns det til en enkelt kolonne...

Nu er 600 rækker ikke noget at snakke om for en SQL database, ligeledes er der heller ikke de store performance problemer i at tælle rækkerne med PHP.

Dog ville den optimale SQL se ud som flg:
"SELECT ROUND(COUNT(id) / 100) * 100 AS cnt FROM pictures WHERE godkendt = 1",

så frem at primær nøgle hedder id og datasættet ikke skal bruges på anden vis...


Michael - når jeg echo'er den kode du skrev, sker der intet? :-)
Nu må I ikke have nogle forventninger til mine programmering-skills - er stadig ny på området :)

Rigtig mange gange tak for svarene, alle sammen!

//Rai



Michael, jeg er enig i, at man bør tælle på én specifik kolonne.

Dog synes jeg ikke, at du kan udtale dig om, hvorvidt der er et performanceproblem, da (jeg går ud fra) du ikke kender til hans system, navnligt hvorvidt MySQL kører på samme server som webserver eller hvad tabellen indeholder. Nu hedder tabellen pictures, og hvis vi antager, at den indeholder 600 1MB billeder, hvor selve billedet ligger som en BLOB, så er det alligvel 600MB data der skal overføres ved hver udførsel. Måske er hans tabel bygget sådan, måske er den ikke. Måske bliver der senere tilføjet flere rækker eller kolonner, måske gør der ikke. Pointen er bare, at man lige så godt kan gøre det rigtigt første gang. Hvis man altid bruger den rigtige teknik (også selvom den måske ikke er "nødvendig"), så ligger den på ryggraden, og man har ét problem mindre at tænke på fremover.

Laziness is doing it right the first time.



Indlæg senest redigeret d. 30.10.2011 03:03 af Bruger #16825
Michael Larsen - nu skrider det fremad! :) Men når jeg echo'er den ud er der intet?

/ Rai.



Indlæg senest redigeret d. 31.10.2011 01:30 af Bruger #16811
Ah, snap! Så kom den!
Rigtig mange gange tak for det!! :-)

/ Rai.



Indlæg senest redigeret d. 01.11.2011 01:06 af Bruger #16811
Husk at stemme, Rai. Det står beskrevet øverst i din tråd :)

Mvh.

Kasper (TSW)



My apologies! Jeg har hermed stemt :-)

Igen tak for hjælpen!

/Rai



<< < 12 > >>
t