Hej, Ha ha ha Fy för dig. Låta andra "slita" istället för att göra det själv.Sökfunktion - Hämta mer info från DB
Jag håller på att bygga en sökfunktion till en produktkatalog och har stött på lite problem. Som ni ser i koden nedan så skriver den ut artikelnummer och produktnamn för varje resultat, men hur ska jag göra om jag vill hämta ut mer information från databasen för varje produkt, t ex: bild, beskrivning och pris mm?
Någon som har något förslag?
<code>
Response.Write "<h3><span>Sökresultat</span></h3>"& vbCrLf & vbCrLf
'Hanterar värdet från sökfältet
strKeyword = Trim(Request("keyword"))
If Len(strKeyword) = 0 Then
'Det finns inget värde från sökfältet
Response.Write "<div class=""prod"">"& vbCrLf
Response.Write "<p class=""alert""><em>Du har inte angivit något sökord! Prova att göra en ny sökning.</em></p>"& vbCrLf
Response.Write "</div>"& vbCrLf & vbCrLf
Response.Write "<div class=""hr""><hr /></div>"& vbCrLf
Else
'Det finns ett värde i sökfältet, vi utför sökningen
'Öppnar databasen
Call dbOpen(Connect)
strKeyword = Replace(strKeyword,"'","''")
'Fält i databasen som ska sökas
fldArtNumber = "artNumber"
fldProdName = "prodName"
fldDesc = "description"
fldKeywords = "keywords"
fldColor = "colors"
'Räknar antal resultat som sökningen resulterade i
strSQL = "Select Count(*) As AntalRes From t_products Where active=True And "& fldArtNumber &" Like '%"& strKeyword &"%' Or "& fldProdName &" Like '%"& strKeyword &"%' Or "& fldDesc &" Like '%"& strKeyword &"%' Or "& fldKeywords &" Like '%"& strKeyword &"%' Or "& fldColor &" Like '%"& strKeyword &"%'"
Set objRs = Connect.Execute(strSQL)
Response.Write "<div class=""prod"">"& vbCrLf
Response.Write "Din sökning på ordet <strong>"& strKeyword &"</strong> resulterade i "& objRs("AntalRes") &" träffar."& vbCrLf
Response.Write "</div>"& vbCrLf & vbCrLf
Response.Write "<div class=""hr""><hr /></div>"& vbCrLf & vbCrLf
objRs.Close : Set objRs = Nothing
'Tar fram resultat
Set objRs = Server.Createobject("ADODB.Recordset")
strSQL = "Select * From t_products Where active=True And "& fldArtNumber &" Like '%"& strKeyword &"%' Or "& fldProdName &" Like '%"& strKeyword &"%' Or "& fldDesc &" Like '%"& strKeyword &"%' Or "& fldKeywords &" Like '%"& strKeyword &"%' Or "& fldColor &" Like '%"& strKeyword &"%' Order by sorting asc"
intPageID = request.querystring( "pageid" )
If intPageID = "" Then intPageID = 1
With objRs
.cursorlocation = 3
.open strSQL, Connect
If objRs.EOF Then Response.Write ""
If Not objRs.EOF Then
.pagesize = 10
.absolutepage = intPageID
End If
End With
intPages = cint( objRs.pagecount )
intCurrentPost = 0
Do While NOT objRs.EOF And intCurrentPost < objRs.pagesize
Response.Write "<div class=""prod"">"& vbCrLf
Response.Write "" & objRs(fldArtNumber) & " " & Left(objRs(fldProdName),30) & ""& vbCrLf
Response.Write "</div>"& vbCrLf & vbCrLf
Response.Write "<div class=""hr""><hr /></div>"& vbCrLf & vbCrLf
intCurrentPost = intCurrentPost + 1
objRs.movenext
Loop
Sub PageNavigation(ByVal PageID, Pages)
'Länk till föregående sida
If CInt(PageID) > 1 Then
Response.Write "Tillbaka | "
Else
Response.Write "Tillbaka | "
End If
'Alla sidnummer
For i = 1 To CInt(Pages)
If i <> CInt(PageID) Then
Response.Write ""& i &" "
Else
Response.Write "(<strong title=""Aktuell sida"">"& i &"</strong>) "
End If
Next
'Länk till nästa sida
If CInt(PageID) < CInt(Pages) Then
Response.Write "| Nästa sida"
Else
Response.Write "| Nästa sida"
End If
End Sub
objRs.Close : Set objRs = Nothing
Call dbClose(Connect)
End If
If intPages > 1 Then
Response.Write "<div id=""page-nav"">"
Call PageNavigation(intPageID, intPages)
Response.Write "</div>" & vbCrLf
End If
Response.Write "<hr />" & vbCrLf
</code>Sv: Sökfunktion - Hämta mer info från DB
Response.Write "<div class=""prod"">"& vbCrLf
Response.Write "" & objRs(fldArtNumber) & " " & Left(objRs(fldProdName),30) & "<br>"& vbCrLf
Response.Write "<IMG SRC=""bildsökväg/" & objRs(fldProdbild) "" style=""float:left;"">"
Response.Write "" & objRs(fldProdBeskrivning) & " <br>Pris: " & (objRs(fldProdPris),30) & ":-"& vbCrLf
Response.Write "</div>"& vbCrLf & vbCrLf
Ändra bildsökväg,
"fldProdbild" till dess riktiga namn
"fldProdBeskrivning" till dess riktiga namn
"fldProdPris" till dess riktiga namn
ta bort "style=""float:left;" om du vill
Sv:Sökfunktion - Hämta mer info från DB
Va de så lätt :) fick för mig att de skulle va mycket svårare så jag testa inte de.
Tack för hjälpen iaf...Sv: Sökfunktion - Hämta mer info från DB
Testa först (många gånger) - fråga här sen.