28. august 2002 - 13:22Der er
26 kommentarer og 1 løsning
Hvordan samler jeg id'er ??
Jeg har en søge funktion hvor jeg gerne vil samle de titler der er ens, 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??
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>"
Jeg takker for forsøget, men du får ingen point når jeg ikke forstår hvad det er du mener. Men hvis du vil sætte det ind i koderne for mig, så vil jeg med glæde give dig dine point ..
strSQL = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, Count(products.catalogID) AS Antal FROM Products, catalogs GROUP BY products.catalogID where Catalogs.catalogNameID = Products.CatalogID"
Jeg får fejlen: (når jeg fx. søger på bærbar)
Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "products.catalogID where Catalogs.catalogNameID = Products.CatalogID AND (products.productName LIKE '%bærbar%') OR (products.productDesc LIKE '%bærbar%')".
Nu har jeg fået det lavet så det ikke giver fejl, men når jeg så vil ufskrive rs("Antal") får jeg fejlen:
Der er en syntaksfejl i JOIN-handlingen.
Sådan ser det ud lige nu:
strSQL = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, Count(products.catalogID) AS Antal FROM catalogs, products INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID"
strSQL = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, Count(products.catalogID) AS Antal FROM products, catalogs INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID"
Jeg regner med, at du skal bruge informationerne i kolonnerne: catalogName,ProductID, ProductDesc, ProductName ..... Derfor skal du lave en query til at hente alle disse informationer:
strSQL_1 = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, products.catalogID FROM products, catalogs INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID"
Dernæst skal du have en query, der giver dig antallet af ens CatalogID:
strSQL_2 = "SELECT products.catalogID as CatID, Count(products.catalogID) as Antal FROM products GROUP BY products.catalogID"
Nu kan du så lave vælge at lave en query, hvor du samler disse informationer. Problemet var før, at du ikke kunne samle en masse records og tælle dem samtidig med at du viste samtlige records adskildt. Læg lige mærke til at "query_2" er den query, som du har lavwet med strSQL2 ovenfor !!
strSQL_3 = "SELECT Catalogs.catalogName as UdskrivNavn, Products.ProductID, products.productDesc, Products.ProductName, products.catalogID, query_2.Antal FROM query_2 INNER JOIN (products, catalogs INNER JOIN Products ON Catalogs.catalogNameID = Products.CatalogID) ON query_2.CatID = products.catalogID"
Hej, det ser ud til at jeg gerne vil have noget mere hjælp, og jeg har 55 point du må få hvis du løser problemet, (du skal nok få nogle alligevel, da du allerede har gjort det godt:))
Jeg har kigget en del på det du har skrevet, man kan ikke helt finde ud af hvad det er du mener.
Vil du ikke give mig en mailadresse, så sender jeg de filer du har brug for, for at løse mit problem, så får du også noget af databasen med! Jeg tror det er lettere??
Du klikker bare på mit navn ude i venstr side og vælger "Bruger Info", så kommer bl.a. e-mail adressen frem i mini siden. Send den DB, så ser jeg lige på det.
Det er svært bare sådan lige at stige ind i et program, men det må være i soeg_db.asp du mener. Der henter du dine detailinformationer, men hvor har du den anden query, hvor du henter optællingen ??
Det er garanteret nemmere, at du selv laver arbejdet. Umiddelbart ser det ud, som om du først skal lave den query, som jeg herover har kaldt strSQL_2. Og dernæst bygge den ind i det du har nu, så det kommer til at ligne strSQL_3.
Jeg har sendt databasen tilbage med de 2 queries lavet, som access queries. Du kan jo så se, om det nu også giver det resultat, som du egentlig er interesseret i. Det skulle være en smal sag at bruge Cut&Paste til at klistre det ind i dine ASP filer.
Jeg er ikke god til ASP og det er jo altså ikke nok bare at lave selve SQL sætningen. Hvis du skulle være i tvivl, så er selve SQL sætningen til en access query til at få fat i ved at åbne query'en i design mode og vælge SQL visning. Skulle du være helt på bar bund, så kan du jo bare nøjes med at henvise til QUERY3 i din ASP kode. det giver lige præcist det samme, som at lave SQL sætningen selv.
Synes godt om
Ny brugerNybegynder
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.