28. august 2002 - 21:02Der er
4 kommentarer og 1 løsning
Count funkrion på en søgning?
Jeg har en søge funktion hvor jeg gerne vil samle de data der ligger under samme kategori, og i stedet tælle hvor mange der er sådan:
fx. computer: computer:
skulle gerne se sådan ud:
computer (2)
Hvordan gør jeg det?? Jeg ved hvordan jeg bruger COUNT, men kan ikke finde ud af at sætte det ind!!
Her er koderne:
strSQL = "SELECT Catalogs.catalogName as UdskrivNavn , Catalogs.CatalogName, Products.ProductID, Products.ProductName, Products.ProductDesc, Products.CatalogID FROM Products, catalogs where Catalogs.catalogNameID = Products.CatalogID" strSQL = strSQL & " AND (products.productName LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (products.productDesc LIKE '%" & strKeyword & "%')" RS.open strSQL, con
If Not (rs.BOF Or rs.EOF) Then Response.Write "<p><div align=""center"">Der blev søgt på ordet<b> " & strKeyword & " </b> som gav følgende resultat:</div></p>" Response.Write "<table border=0 width=430>" Response.Write "<tr><td><b>Kategori</b></td></tr>" Do While Not rs.EOF Response.Write "<tr><td>" & rs("UdskrivNavn") & "</td>" Response.Write "<td>" & rs("CatalogID") & "</td></tr>"
Hej. Når jeg skriver ud lige nu ser det fx. sådan ud:
computer (her er Products.CatalogID = 1) software (her er Products.CatalogID = 2) cykeler (her er Products.CatalogID = 3) computer (her er Products.CatalogID = 1)
Og det vil jeg gerne have samlet til: computer(2) software(1) cykeler(1)
Her er hele koden:
<% strKeyword = Trim(Request.Form("soeg"))
If Len(strKeyword) = 0 Then
Response.Clear Response.Redirect("default.asp")
Else
strKeyword = Replace(strKeyword,"'","''")
End If
ordArray = Split(strKeyword, " ") strSQLWhere = "" strSQL = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, Products.CatalogID FROM Products, catalogs where Catalogs.catalogNameID = Products.CatalogID" strSQL = strSQL & " AND (products.productName LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (products.productDesc LIKE '%" & strKeyword & "%')"
for i = lbound(ordArray) to ubound(ordArray) if strSQLWhere <> "" then strSQLWhere = strSQLWhere & " OR " strSQLWhere = strSQLWhere & "(Products.ProductName LIKE '%" & ordArray(i) & "%')" next for i = lbound(ordArray) to ubound(ordArray) if strSQLWhere <> "" then strSQLWhere = strSQLWhere & " OR " strSQLWhere = strSQLWhere & "(products.productDesc LIKE '%" & ordArray(i) & "%')" next
Set con = server.CreateObject("ADODB.Connection") Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../e-handel/db/database.mdb")
Set rs = Con.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then Response.Write "<p><div align=""center"">Der blev søgt på ordet<b> " & strKeyword & " </b> som gav følgende resultat:</div></p>" Response.Write "<table border=0 width=430>" Response.Write "<tr><td><b>Kategori</b></td></tr>" i = 1 Do While Not rs.EOF If i mod 2 = 0 then Response.Write "<tr bgcolor='#EEEEEE' class='tekst'><td><a href='#'>" & rs("UdskrivNavn") & "</a> (0)</td></tr>" ELSE Response.Write "<tr class='tekst'><td><a href='#'>" & rs("UdskrivNavn") & "</a> (0)</td></tr>" End if i = i + 1 rs.MoveNext Loop Response.Write "</table>" Else Response.Write "Der er ikke fundet noget på denne søgning." End If Con.Close Set Con = Nothing %>
Her er koden til din løsning - så skriver den navnet efterfulgt af antallet i parantesen:
(Har kun taget den sidste del af din kode)
If Not (rs.BOF Or rs.EOF) Then Response.Write "<p><div align=""center"">Der blev søgt på ordet<b> " & strKeyword & " </b> som gav følgende resultat:</div></p>" Response.Write "<table border=0 width=430>" Response.Write "<tr><td><b>Kategori</b></td></tr>" i = 0 Do While Not rs.EOF i = i + 1 rs.MoveNext Loop Response.Write "<tr class='tekst'><td><a href='#'>" & rs("UdskrivNavn") & "</a> (" & i & ")</td></tr>"
Response.Write "</table>" Else Response.Write "Der er ikke fundet noget på denne søgning." End If
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.