Avatar billede jansangill Nybegynder
06. december 2007 - 19:41 Der er 11 kommentarer

sql, count

Okay sql eksperter:)

Jeg har et sql kald, som jeg gerne vil gøre således at jeg kan kombinere den med en tæller, som skal counte antal indlæg per kategori.

Vist nedenfor:

sql="SELECT foru_kategori.id AS foruid,foru_kategori.billede,foru_kategori_indhold.* FROM foru_kategori,foru_kategori_indhold WHERE foru_kategori.id=foru_kategori_indhold.parent_id AND foru_kategori_indhold.sprogid="&sprogid&" ORDER BY foru_kategori_indhold.id ASC"
SET RS= Conn.execute(sql)

I den vil jeg gerne have såldes at jeg kan tælle antal poster, hvorved sprogid="&sprogid&" og aktiv er sat til 1.

Herved vist:

SQL="SELECT COUNT(id) AS antal_counter FROM foru_indlæg_indhold WHERE sprogid="&sprogid&" AND aktiv=1"

Disse to SQL kald skulle helst blive til en, da der ellers ville komme for mange kald.

Nogle forslag?

Database struktur - det vigtigste:

foru_kategori:
id
billede

foru_kategori_indhold:
id
parent_id
aktiv
sprogid

foru_indlaeg:
id

foru_indlaeg_indhold:
id
parent_id
sprogid
aktiv


Hvorledes det skal gøres kan jeg ikke lige kringle på stående fod,Nogen der kan hjælpe?
Avatar billede jansangill Nybegynder
06. december 2007 - 19:42 #1
Glemte at sige:

SQL="SELECT COUNT(id) AS antal_counter FROM foru_indlæg_indhold WHERE sprogid="&sprogid&" AND aktiv=1"

Skal være

SQL="SELECT COUNT(id) AS antal_counter FROM foru_indlæg_indhold WHERE sprogid="&sprogid&" AND aktiv=1 AND parent_id="&parent_id&""
Avatar billede jansangill Nybegynder
06. december 2007 - 19:50 #2
Og denne kategori skulle self have været i MSSQL, ikke MySQL:(
Avatar billede erikjacobsen Ekspert
06. december 2007 - 20:22 #3
Så skal du nok have gang i en GROUP BY - men jeg forstår ikke helt præcist hvad du vil.
Avatar billede jansangill Nybegynder
06. december 2007 - 20:37 #4
Jeg looper igennem en række records, hvori der skal vises antal kommentarer der findes i hvert kategori. Lige nu looper den igennem det fint nok, men jeg mangler at få flettet en counter ind i min nuværende SQL, den første som jeg viser.

Håber det forklarede det bedre, ellers må jeg jo prøve at gøre det bedre.
Avatar billede erikjacobsen Ekspert
06. december 2007 - 21:06 #5
Nej, ikke helt ;)

Skal du have vist alle kommentarer i alle kategorier, eller kun deres antal? Begge dele skal du ikke gøre i en sql-sætning.
Avatar billede jansangill Nybegynder
06. december 2007 - 21:37 #6
Skal slet ikke have vist kommentarer. Det jeg har er 4 kategorier f.eks. Disse kategorier har et vist antal indlæg. Disse inlæg skal tælles, ikke vises, bare tælles.

Jeg looper disse kategorier ud via den første SQL. Det jeg gerne vil er at tælle antal indlæg per kategori.

Eksempel:

kategori= fodbold(7)

Altså 7 indlæg under denne kategori.
Avatar billede erikjacobsen Ekspert
06. december 2007 - 21:39 #7
SELECT kategori,COUNT(*) FROM ... GROUP by kategori ORDER BY kategori 
(sådan ca.)
Avatar billede jansangill Nybegynder
07. december 2007 - 09:31 #8
sql = "SELECT foru_kategori.id AS foruid,foru_kategori.billede,foru_kategori_indhold.navn,foru_kategori_indhold.url,foru_kategori_indhold.beskrivelse, COUNT(foru_indlaeg_indhold.id) AS antal FROM foru_kategori,foru_kategori_indhold LEFT JOIN foru_indlaeg_indhold ON foru_indlaeg.id=foru_indlaeg_indhold.parent_id WHERE foru_kategori.id=foru_kategori_indhold.parent_id AND foru_kategori_indhold.sprogid="&sprogid&" GROUP BY foru_kategori.id,foru_kategori.billede,foru_kategori_indhold.navn,foru_kategori_indhold.url,foru_kategori_indhold.beskrivelse ORDER BY foru_kategori_indhold.id ASC"


Wupsa, nu har jeg prøvet at lave en sql, men jeg kan ikke rigtigt finde den rigtige opskrift.

Lige pt får jeg fejlen:
The multi-part identifier "foru_indlaeg.id" could not be bound.
Avatar billede erikjacobsen Ekspert
07. december 2007 - 09:34 #9
Jeg tror du skal forklare meget klart og tydeligt hvad du har, og hvad du vil opnå.
Avatar billede jansangill Nybegynder
07. december 2007 - 10:02 #10
Må jo nok indrømme at jeg tvivlsomt kan forklare dig det bedre end jeg har prøvet. har fundet en anden metode, som jeg vil bruge istedet.

mange tak for gjælpen dog, smid du et svar.
Avatar billede erikjacobsen Ekspert
07. december 2007 - 10:23 #11
Jeg samler slet ikke på point, tak.
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
Computerworld tilbyder specialiserede kurser i database-management

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