25. august 2002 - 23:42Der er
10 kommentarer og 1 løsning
Hjælp til 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-nummer. Disse ID'er passer sammen med nogle navne i en anden tabel.
Så i stedet for at skrive et 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.
Please help.....
<% ' 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 products.productName, products.productDesc, products.catalogID, catalogs.catalogID, catalogs.CatalogName FROM products, catalogs WHERE (products.catalogID = catalogs.catalogID) and " strSQL = strSQL & " (productName LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (productDesc 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
Øhh, jeg får denne fejl (Datatyperne stemmer ikke overens i kriterieudtrykket.) når jeg skriver rs("catalogs.catalogName") istedet for rs("catalogID")???
hej, efter regler jeg indsætter koden her: michael jeg tror Catalogs.CatalogID er Autonummer derfor products.CatalogID datatype må være tal ellers Datatype mismatch, men i den database jeg sendte til dig har jeg rettet den.
<% ' Path to Database Dim Ketab Ketab = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/project4/data.mdb") %>
<% dim strKeyword strKeyword = Trim(Request.Form("soeg")) %> <!-- den kan du bare fjerne -->
<center> <form method="Post" id=form1 name=form1> <INPUT type="text" id=text1 name=soeg> <input type="submit" name="btnSearch" value="Search"></p> </form> </center> <!-- Her til fjernes --> <% ' jeg ved ikke om dette if sætning virker da jeg havde ikke set default.asp 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
Set con = server.CreateObject("ADODB.Connection") con.Open ketab
Set RS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT Catalogs.catalogID, Catalogs.CatalogName, Products.ProductID, Products.ProductName, Products.ProductDesc, Products.ProductImg, Products.ProductPrice, Products.NuminStock, Products.CatalogID, Products.DateAvailable FROM Products, catalogs where Catalogs.catalogID = 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("catalogs.catalogID") & "</td></tr>" Response.Write "<tr><td>" & rs("productDesc") & "</td></tr>"
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 %>
Jeg fik ikke tilsendt db-en jeg ved ikke hvorfor han fik det, måske han har ændret det i mellem tiden. Det var bare min gæt. Det er mystiken. Men måske han kan selv forklare hvad han har gjort. Men ellers virker den godt nok hos mig.
Det er fordi du har ikke inkluderet Hoseditme.asp i filen soeg_db.asp. i hoseditme.asp står:
<% ' Path to Database Dim Ketab Ketab = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/project4/data.mdb") %> Du skal rette ("/project4/data.mdb") skriv din egen path. Og læg Hoseditme.asp samme sted som andre filer ligger.
jeg sender med det samme retur. en ting til top, bund og menu.asp har jeg fjernet sæt dem ind igen.
ok, jeg har nu skrevet den rigtige sti ( <% Dim Ketab Ketab = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../e-handel/db/database.mdb") %>)
Men jeg får fejlen: Datakildenavnet blev ikke fundet, og der er ikke angivet en standarddriver.
Skal filen med stien ikke includeres?? Eller hvad er der ellers galt?
jeg har rettet lidt selv på det og det kom til at virke - mange tak..
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.