26. marts 2002 - 15:58Der er
24 kommentarer og 1 løsning
Div. problemer med asp og db
Jeg har nogle problemer som jeg håber der er nogle af jer der kan hjælpe med: 1. Jeg har en db med nogle vargruppe i som jeg har sat en asp side til at hente. Derefter skal den så oprette en liste med alle varegrupperne. Det gør den også fint nok men den sorter dem ikke i alfabetisk rækkefølge. Hvordan gør jeg det? Her er den kode jeg bruger:
SQL = "SELECT Varegruppe FROM Varegruppe"
rs.Open SQL, Conn
x = 0 For x = 1 to 9999 If rs.eof then Exit For Else
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
Ras2000 ... det hjalp med det første problem men det hjalp ikke bare at fjerne % i mit andet problem ... hvis jeg fjerner dem skriver den bare det samme :-)
<% If Request.Form("Submit") = "Submit" Then Response.Write "Du skal skrive et søgeord som du vil søge efter!<BR>" End If %> <% Else %> <% If Query = "" then Response.Write("Søgningen gav intet resultat") end if %> <br> <form method="post" action="search_items.asp" name="submit_search"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Søg vare: <input type="text" name="txtQuery"> <input type="submit" name="Submit" value="Søg"> </font></td> </tr> </table> </form> <br> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> <% Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset") 'Modify and use this connection if your database is in your database directory 'Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=scidata.mdb" Conn.Open "DBQ=" & Server.Mappath("scidata.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%" & Query & "%'" rs.Open SQL, Conn
x = 0 For x = 1 to 9999 If rs.eof then If x = 1 Then Response.Write "Søgningen gav intet resultat.<BR>" End If Exit For Else
Er du sikker på at Query er lig noget? Derudover synes jeg der er lidt kludder i din kode, du har to tilfælde af if Query = "". En anden ting du kunne prøve er at erstatte like med =, jeg kan ikke helt huske om man altid kan bruge like i en sql sætning.
Man kan godt bruge like i en sql sætning. Så derfor hjælper det heller ikke at ændre det til = ! Jeg ved godt at jeg har 2 tilfælde af if Query. Men de vises ikke på sammetidig. Den ene vises sammen med søge funktionen når siden loades og den anden vises med en ny søge funktion der vises når man har søgt!
Nå, har lige tjekket det, og like skulle ikke give noget problem. Det eneste jeg kan forestille mig er at din Query er tom. Prøv med en If query <> "" then rs.Open SQL, Conn og se hvad den siger til det.
Prøv at skriv noget inde i pingerne istedet for en variabel, bare for at se om det virker. SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%Nogle bogstaver du ved den kan finde%'"
Prøv at lave en side der sådan her ud, og se om det virker. <html> <body> <% Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset") Conn.Open "DBQ=" & Server.Mappath("varer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" SQL = "SELECT Name, Varenummer, Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%et%'" rs.Open SQL, Conn Do while not rs.eof response.write rs(0) rs.MoveNext loop %> </body> </html>
SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%" & Query & "%' ORDER BY Varegruppe, Produkt, Udsalgspris, Bemærkning"
INNER JOIN Varegruppe ON Produkter.varegruppe = Varegruppe.VaregruppeId"
Jeg fik det andet til at virke ... hvordan kan man så kæde følgende ting sammen?!?!?!?!
SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM INNER JOIN Varegruppe ON Produkter.varegruppe = Varegruppe.VaregruppeId WHERE Name like '%" & Query & "%' ORDER BY Varegruppe, Produkt, Udsalgspris, Bemærkning"
If Varegruppe = "" then response.Write("Skriv venligst hvad du vil søge på") else end if
Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset") 'Modify and use this connection if your database is in your database directory 'Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=db.mdb" Conn.Open "DBQ=" & Server.Mappath("db.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Varenummer, Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE (Varegruppe = '" & Varegruppe & "')"
rs.Open SQL, Conn
For x = 1 to 10 If rs.eof then Exit For Else ImageURL = rs("ImageURL") ImageURL = "<img src='" & ImageURL & "'>"
Det eneste jeg kan forestille mig, er at den sidste varegruppe er en tom streng.
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.