23. august 2002 - 12:29Der er
11 kommentarer og 3 løsninger
Hjælp til en lille søgefunktion
Nedenfor har jeg koden til min søgefunktion der søger på et ord. Når ordet er fundet, udskriver den et ID. Disse ID'er passer sammen med nogle navne i en anden tabel.
Så i stedet for at skrive tal ud, vil jeg gerne have navnene skrevet ud, men hvordan gør jeg det??
Den anden tabel hvor navnene ligger hedder catalogs, og der hvor navnene ligger hedder catalogName.
<% ' Henter værdien fra default.asp strKeyword = Trim(Request.Form("soeg"))
If Len(strKeyword) <= 1 Then ' Hvis der ikke er skrevet i feltet Response.Clear Response.Redirect ("default.asp") Else ' Hvis der er skrevet i feltet strKeyword = Replace(strKeyword,"'","''") End If
' Opbygger en dynamisk SQL streng strSQL = "SELECT productName, productDesc, catalogID FROM products WHERE" strSQL = strSQL & " (productName LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (productDesc LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (catalogID LIKE '%" & strKeyword & "%')"
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen 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("catalogID") & "</td></tr>"
rs.MoveNext Loop Response.Write "</table>" Else Response.Write "Der er ikke fundet noget på denne søgning." End If
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
Hej, nu har jeg fået set lidt på det, med det virker ikke helt. Jeg har fjernet nogle ting der var overflødelige, sådan at min srtSQL ser sådan ud nu..
strSQL = "SELECT products.catalogID, catalogs.catalogname FROM products WHERE (products.catalogID = catalogs.catalogID) and " strSQL = strSQL & " (catalogID LIKE '%" & strKeyword & "%')"
I tabellen catalogs hedder ID (catalogID), vil du prøve at se på det?
Fejlen jeg får lige nu er: Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
Fejlen er i linie 80 som er: Set rs = myConn.Execute(strSQL)
strSQL = "SELECT products.productName, products.productDesc, catalogs.catalogsID, products.catalogID, catalogs.catalogname FROM products, catalogs WHERE (products.catalogID = catalogs.ID) and " strSQL = strSQL & " (productName LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (productDesc LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (catalogID LIKE '%" & strKeyword & "%')"
alle de felter (eller koloner) som du vælger i din kritere skal også vælges i din select sætning, desuden har du CatalogID i begge tabeller så skrev fx. catalogs.catalogsID, products.catalogID også i dine kritere dvs. alt efter din "where". Du skal også tjeke om du har stavet korrekt. Også feltene hedder det samme i tabellen og i din SQL sætning (query).
Jeg får denne fejl, som jeg ikke kan finde ud af??
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access-driver] Det angivne felt "catalogID" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL.
Jeg lukker og prøver at omformulere mit spørgsmål lidt under en anden kategori, men hvis I stadig kan hjælpe mig, vil det være super og I skal nok få nogle flere point så!!
Hvorfor der er problemmer strSQL = "SELECT products.productName, products.productDesc, catalogs.catalogsID, products.catalogID, catalogs.catalogname FROM products, catalogs WHERE (products.catalogID = catalogs.ID) and " strSQL = strSQL & " (products.productName LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (products.productDesc LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (products.catalogID LIKE '%" & strKeyword & "%')"
i din mail 25/08-2002 15:26:37 står: Det angivne felt "catalogID" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL. fordi du har catalogID i begge tabeller derfor du skal skrive hvad for en. I den ovenstående SQL har jeg bestemmt products.catalogID så må det ikke opstå nogen fejl. du kan eventull sende din db til mig så kan jeg rette den, Det er ikke så besværligt. mach3@get2net.dk men kun med få data.
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.