Avatar billede bobbedude Nybegynder
06. november 2001 - 15:21 Der er 43 kommentarer og
1 løsning

Count igen

Jeg har 2 tabeller en med kategorier og en med links.
I links tabellen er kategori med navn på den kategori linket høre til.
hvordan laver jeg en count så man kan se hvor mange link der er i hver kategori ???
Avatar billede -sofus- Nybegynder
06. november 2001 - 15:24 #1
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"db/db.mdb\")
set rs = Conn.execute(\"select * from tabel1 \")

if rs.EOF then
Response.write \"Databasen er tom.\"
else
Do Until rs.EOF
set temp = Conn.Execute(\"select count(*)  as antal from tabel2)
%>

<%=temp(\"antal\")%>
Avatar billede -sofus- Nybegynder
06. november 2001 - 15:25 #2
nu også som svar
Avatar billede bobbedude Nybegynder
06. november 2001 - 15:31 #3
jamen ikke sådan kik her


response.buffer = true
set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"../bank.mdb\")
Set rs = Connect.Execute(\"SELECT * FROM kategorier\")
Set rs2 = Connect.Execute(\"SELECT COUNT(*) AS antal FROM links\")
if not rs.EOF then
do until rs.EOF

response.write \"<tr>\"
response.write \"<td>\" & \"<a href=\"\"se-kat.asp?linkid=\" & rs(\"id\") & \"\"\">\" & rs(\"kategori\") & \"</a></td>\"
response.write \"<td>\"  & rs(\"kat-tekst\") & \"-\" HER SKAL DER OGSÅ TÆLLES HVOR MANGE LINK DER ER I DENNE KATEGORI</td>\"
response.write \"</tr>\"
response.write \"<tr>\"
response.write \"<td colspan=\'2\' bgcolor=\'#000066\' height=\'2\'></td>\"
response.write \"</tr>\"
if Cint(Request.QueryString(\"linkid\")) = rs(\"id\") then


end if
rs.movenext
Loop
else
response.write \"Ingen felter\"
end if

response.write \"der er \" & rs2(\"antal\") & \" billeder i databasen\"
%>
Avatar billede eagleeye Praktikant
06. november 2001 - 15:40 #4
hvad er forskellen på rs(\"kategori\") og rs(\"kat-tekst\")?
Avatar billede bobbedude Nybegynder
06. november 2001 - 15:42 #5
kategorien er fek.s fiskestænger eller tandhjul
kat-tekst er den tekst der høre til kategorien.
Avatar billede eagleeye Praktikant
06. november 2001 - 15:43 #6
ok to sekunder... laver lige en SQL-sætning
Avatar billede bobbedude Nybegynder
06. november 2001 - 15:44 #7
coooool
Avatar billede eagleeye Praktikant
06. november 2001 - 15:47 #8
Prøv dette eks:

<%
response.buffer = true
set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"../bank.mdb\")

strSQL = \"SELECT Count(links.link) AS CountOflink, kategorier.Kategori, kategorier.[Kat-tekst] \"
strSQL  = strSQL & \"FROM kategorier LEFT JOIN links ON kategorier.Kategori = links.kategori \"
strSQL  = strSQL & \"GROUP BY kategorier.Kategori, kategorier.[Kat-tekst];\"

Set rs = Connect.Execute(strSQL)
if not rs.EOF then
do until rs.EOF
  response.write \"<tr>\"
  response.write \"<td>\" & \"<a href=\"\"se-kat.asp?linkid=\" & rs(\"id\") & \"\"\">\" & rs(\"kategori\") & \"</a></td>\"
  response.write \"<td>\" & rs(\"kat-tekst\") & \"-\" & rs(\"CountOflink\") & \"</td>\"
  response.write \"</tr>\"
  response.write \"<tr>\"
  response.write \"<td colspan=\'2\' bgcolor=\'#000066\' height=\'2\'></td>\"
  response.write \"</tr>\"
  rs.movenext
Loop
else
  response.write \"Ingen felter\"
end if

\'\'\'\'response.write \"der er \" & rs2(\"antal\") & \" billeder i databasen\"
%>



Jeg ved ikke lige hvordan den sidste linie passer ind: response.write \"der er \" & rs2(\"antal\") & \" billeder i databasen\"
så jeg har udkommenteret den.
Avatar billede eagleeye Praktikant
06. november 2001 - 15:48 #9
arh den går vis ikke for man kan ikke få unik linkID ud når man tæller sammen...
Avatar billede eagleeye Praktikant
06. november 2001 - 15:49 #10
hvad gør filen se.kat.asp ?? viser den en kategori eller et link i kategorien??
Avatar billede bobbedude Nybegynder
06. november 2001 - 15:50 #11
jeg får denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e10\'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/mediebank/admin/kategori.asp, line 23

linie 23 er Set rs = Connect.Execute(strSQL)
Avatar billede bobbedude Nybegynder
06. november 2001 - 15:50 #12
hvad gør filen se.kat.asp ?? viser den en kategori eller et link i kategorien??


Viser link i kategorien
Avatar billede eagleeye Praktikant
06. november 2001 - 15:51 #13
så har jeg nok stavet en af dine tabeller / kolonner forket....
Avatar billede eagleeye Praktikant
06. november 2001 - 15:52 #14
hvad hedder kolonne som indeholder kategori i tabellen links ?

LEFT JOIN links ON kategorier.Kategori = links.kategori <---- rettes til rigtig navn
Avatar billede bobbedude Nybegynder
06. november 2001 - 15:53 #15
den hedder kategori
Avatar billede eagleeye Praktikant
06. november 2001 - 16:22 #16
ok
Hvad skal se-kat.asp vise?  den får et linkid=rs(\"ID\") i din kode. Kommer det ID fra kategorier eller fra Links?
Avatar billede eagleeye Praktikant
06. november 2001 - 16:32 #17
er kat-tekst i kategorier eller links tabellen?
Avatar billede eagleeye Praktikant
06. november 2001 - 16:34 #18
hedder kategori også kategori i tabellen kategorier ?
Avatar billede bobbedude Nybegynder
06. november 2001 - 22:06 #19
hedder kategori også kategori i tabellen kategorier ? >> ja
Avatar billede eagleeye Praktikant
06. november 2001 - 22:09 #20
har du en kolonne som hedder link i links?

Prøv denne SQL:

strSQL = \"SELECT Count(links.link) AS CountOflink, kategorier.ID, kategorier.Kategori, kategorier.[Kat-tekst] \"
strSQL = strSQL & \"FROM kategorier LEFT JOIN links ON kategorier.Kategori = links.kategori \"
strSQL = strSQL & \"GROUP BY kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID;\"
Avatar billede bobbedude Nybegynder
07. november 2001 - 08:11 #21
eagleeye >> Det virker ikke :ø(

Her er min DB


[Kategorier] indeholder :
[id] - [kategori] - [kat-tekst]

[links] indeholder :
[ID] - [kategori] - [thumb-over] - [thumb-tekst] - [thumbnail] - [hi-res] - [hi-type] - [low-res] - [low-type] - [zip-file] - [zip-type] - [sog-1]- [sog-2]- [sog-3]- [sog-4]- [sog-5]



Når jeg kører den sidste sql du skrev får jeg fejlen:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e10\'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/mediebank/admin/kategori.asp, line 23

Linie 23 er :
Set rs = Connect.Execute(strSQL)
Avatar billede eagleeye Praktikant
07. november 2001 - 08:12 #22
Ok links indeholder ikke link.

Prøv denne SQL:
strSQL = \"SELECT Count(links.ID) AS CountOflink, kategorier.ID, kategorier.Kategori, kategorier.[Kat-tekst] \"
strSQL = strSQL & \"FROM kategorier LEFT JOIN links ON kategorier.Kategori = links.kategori \"
strSQL = strSQL & \"GROUP BY kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID;\"
Avatar billede bobbedude Nybegynder
07. november 2001 - 08:17 #23
nu giver den ingen fejl men den viser at der er 0 links i alle kategorier selv om der er noget i nogen af dem.

Ps. undskyld fordi jeg fejl informerede dig ang. link
Avatar billede eagleeye Praktikant
07. november 2001 - 09:06 #24
kategorier.Kategori skal være links.kategori for de bliver talt.
Avatar billede bobbedude Nybegynder
07. november 2001 - 10:57 #25
Ahm sorry men hvor er det lige jeg skal gøre det ??

strSQL = \"SELECT Count(links.ID) AS CountOflink, kategorier.ID, kategorier.Kategori, kategorier.[Kat-tekst] \"
strSQL = strSQL & \"FROM kategorier LEFT JOIN links ON kategorier.Kategori = links.kategori \"
strSQL = strSQL & \"GROUP BY kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID;\" 
Avatar billede eagleeye Praktikant
07. november 2001 - 11:00 #26
Det er i SQL\'en.

Hvis katergorier.katergor = \"kat1\"
så skal links.kategori også være = \"kat1\"

for den kan tælle dem.
Avatar billede bobbedude Nybegynder
07. november 2001 - 11:03 #27
Ahm sorry eagleeye >> Jeg fatter bare ikke hvad jeg skal gøre :ø(
Avatar billede eagleeye Praktikant
07. november 2001 - 11:10 #28
Det var ment som information/spørgsmål for den kan tælle i links så skal links.kategori være = med katergorier.katergor.
Du skrev du fik 0 som count ved alle kategorier.

Kan du tjekke i databasen om links.kategori er = kategorier.kategori.

Hvis du har en kategori = \"biler\" for den kan tælle de record i tabellen links som høre til denne kategori så skal links.kategori også være = \"biler\".
Avatar billede bobbedude Nybegynder
07. november 2001 - 11:14 #29
kategorier er kategorier.kategori

links er links.kategori

Sådan ?
Avatar billede eagleeye Praktikant
07. november 2001 - 11:27 #30
Det var ikke lige det jeg tænke på:


SQL\'en virker på den måde den filnder/går alle record I gennem I kategorier. Samtidig tæller den I links hvor mange records der er hvor links.kategori=kategorier.kategori. Hvis den tæller 0 for alle kategori\'er kunne det type på at links.kategori ikke har samme indhold som kategorier.kategori


Eks:
Kategorier
Katergori  kat-tekst
Biler          om biler
Både        om både

Links
Kategori    [felter]
Biler            data
Biler            data
Biler            data
Både          data
Biler            date

Så skulle de gerne ende med et recordset som dette:

Kategori  kat-tekst  coutoflinks
Biler          om biler      4
Både        om både    1
Avatar billede bobbedude Nybegynder
07. november 2001 - 12:56 #31
hej eagleeye kik lige her http://www.wild-game.dk/acces.jpg
Avatar billede bobbedude Nybegynder
07. november 2001 - 12:57 #32
håber det kan hjælpe på min lidt tågede forklaring
Avatar billede eagleeye Praktikant
07. november 2001 - 13:03 #33
Jeps, så kategori i links er et tal (kategorier.ID)
Avatar billede eagleeye Praktikant
07. november 2001 - 13:06 #34
Så skal links.kategori være defineret som tal og ikke tekst for det virker med den SQL.
Avatar billede bobbedude Nybegynder
07. november 2001 - 13:06 #35
yes det er
Avatar billede eagleeye Praktikant
07. november 2001 - 13:07 #36
Hvis du laver kolonnen kategori i tabellen links (links.kategori) om til tal virker (skulle gerne) denne SQL:

SELECT Count(links.ID) AS CountOflink, kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID
FROM kategorier LEFT JOIN links ON kategorier.ID = links.kategori
GROUP BY kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID;
Avatar billede eagleeye Praktikant
07. november 2001 - 13:10 #37
Jeg prøver lige igen:

strSQL = \"SELECT Count(links.link) AS CountOflink, kategorier.ID, kategorier.Kategori, kategorier.[Kat-tekst] \"
strSQL = strSQL & \"FROM kategorier LEFT JOIN links ON kategorier.ID = links.kategori \"
strSQL = strSQL & \"GROUP BY kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID;\"
Avatar billede eagleeye Praktikant
07. november 2001 - 13:11 #38
Og så lige en extra gang, for fanden jeg skal vist lige læse lidt bedre havd jeg skriver :)

strSQL = \"SELECT Count(links.ID) AS CountOflink, kategorier.ID, kategorier.Kategori, kategorier.[Kat-tekst] \"
strSQL = strSQL & \"FROM kategorier LEFT JOIN links ON kategorier.ID = links.kategori \"
strSQL = strSQL & \"GROUP BY kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID;\" 
Avatar billede bobbedude Nybegynder
07. november 2001 - 13:11 #39
Nu har jeg dette:

strSQL = \"SELECT Count(links.ID) AS CountOflink, kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID \"
strSQL = strSQL & \"FROM kategorier LEFT JOIN links ON kategorier.ID = links.kategori \"
strSQL = strSQL & \"GROUP BY kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID;\"

men får fejlen:

Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'
[Microsoft][ODBC Microsoft Access Driver] Type mismatch in expression.

/mediebank/admin/kategori_test.asp, line 25

linie 25 er Set rs = Connect.Execute(strSQL)
Avatar billede bobbedude Nybegynder
07. november 2001 - 13:13 #40
jeg får samme fejl med

strSQL = \"SELECT Count(links.ID) AS CountOflink, kategorier.ID, kategorier.Kategori, kategorier.[Kat-tekst] \"
strSQL = strSQL & \"FROM kategorier LEFT JOIN links ON kategorier.ID = links.kategori \"
strSQL = strSQL & \"GROUP BY kategorier.Kategori, kategorier.[Kat-tekst], kategorier.ID;\"
Avatar billede eagleeye Praktikant
07. november 2001 - 13:13 #41
Det er fordi links.kategori er defineret som text i databasen.
Avatar billede bobbedude Nybegynder
07. november 2001 - 13:18 #42
så virker det coool
Tusind tak for hjælpen det var virkeligt godt gået.
Avatar billede bobbedude Nybegynder
07. november 2001 - 13:24 #43
eagleeye >> hvordan skal jeg så lige skrive

Set rs2 = Connect.Execute(\"SELECT * FROM links WHERE kategori = \'\" & request(\"linkid\") & \"\'\")

Nu er link jo et tal også får jeg en fejl når jeg kører scriptet.
Avatar billede eagleeye Praktikant
07. november 2001 - 13:32 #44
Så skal du fjerne \'

Set rs2 = Connect.Execute(\"SELECT * FROM links WHERE kategori = \" & request(\"linkid\") & \"\")
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
Kurser inden for grundlæggende programmering

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