15. marts 2004 - 15:44Der er
23 kommentarer og 2 løsninger
Fri tekst
Hej eksperter
Jeg håber virkelig, at nogen her kan hjælpe mig... På min side kan brugeren udfylde nogle søgefelter (et for hvert felt i databasen) og trykke 'søg', hvorefter de bliver sendt til en side, som viser resultaterne fra søgningen... Men nu har jeg lavet endnu et søgefelt, kaldet 'fritekst', som skal tjekke om dens værdi findes i nogen som helst af felterne i databasen... hvad skal jeg tilføje i koden (nedenfor) for at få det til at virke?
sqlWhere = "" if Request.Form("alder") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " alder = '" & Request.Form("alder") & "'" end if if Request.Form("kon") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " kon= '" & Request.Form("kon") & "'" end if if Request.Form("amt") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " amt= '" & Request.Form("amt") & "'" end if if Request.Form("kommune") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " kommune= '" & Request.Form("kommune") & "'" end if if Request.Form("job") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " job= '" & Request.Form("job") & "'" end if
strSQL = "SELECT id, brugernavn, [navn], email, alder, amt, kommune, job, ansogning FROM ansogning " if sqlWhere <> "" then strSQL = strSQL & " WHERE " & sqlWhere
if Request.Form("fritekst") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " fritekst LIKE '%" & Request.Form("fritekst") & "%'" end if
Id - Autonummerering brugernavn - Notat password - Notat email - Notat navn - Notat alder - Notat kon - Notat amt - Notat kommune - Notat job - Notat ansogning - Notat dato - Dato og klokkeslet
Det driller lidt... Lige nu ser min kode sådan her ud: ______________________________________________________ <% ' Opbygger en dynamisk SQL streng sqlWhere = "" if Request.Form("alder") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " alder = '" & Request.Form("alder") & "'" end if if Request.Form("kon") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " kon= '" & Request.Form("kon") & "'" end if if Request.Form("amt") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " amt= '" & Request.Form("amt") & "'" end if if Request.Form("kommune") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " kommune= '" & Request.Form("kommune") & "'" end if if Request.Form("job") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " job= '" & Request.Form("job") & "'" end if if Request.Form("fritekst") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " fritekst LIKE '%" & Request.Form("fritekst") & "%'" end if
strSQL = "SELECT id, [navn], email, alder, amt, kommune, job, ansogning FROM ansogning " if sqlWhere <> "" then strSQL = strSQL & " WHERE " & sqlWhere
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL)
response.write strSQL response.end
' Skaber DSNLess forbindelse til DBen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/ansogning.mdb")
If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen Response.Write "<font face='Verdana' size='2pt.'><b>Alle job-ansøgere<br></b><hr color='#000000' size='1'><br></font>" Response.Write "<table width='100%' border=1 cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#000000'>" Response.Write "<tr><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Fuld ansøgning</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Navn</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Alder</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Amt</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Kommune</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Jobønske</font></th></tr>" Do While Not rs.EOF %> <tr><td><font color="#000000" face="Verdana" size=2><p align=center><a href="#" onclick="popup('profil.asp?id=<%=rs("id")%>','Ansøgning','220','480');">Læs hel profil</a></p></font></td> <% Response.Write "<td> <a href='mailto:" & rs("email") & "?subject=Angående job-ansøgning på Søg.dk'><font color='#000000' face='Verdana' size=2>" & rs("navn") & " </font></a></td>" Response.Write "<td><font color='#000000' face='Verdana' size=2> " & rs("alder") & " </font></td>" Response.Write "<td><font color='#000000' face='Verdana' size=2> " & rs("amt") & " </font></td>" Response.Write "<td><font color='#000000' face='Verdana' size=2> " & rs("kommune") & " </font></td>" Response.Write "<td><font color='#000000' face='Verdana' size=2> " & rs("job") & " </font></td>" rs.MoveNext Loop Response.Write "</table><br><hr color='#000000' size='1'><font color='#000000' face='Verdana' size=1><a href='#' onClick='history.go(-1)'><-Tilbage</a></font>" Else ' Hvis der ikke er fundet poster på søgningen Response.Write "<p><font color='#000000' face='Verdana' size=2>Der er ikke fundet noget på denne søgning!</font><br><br><font color='#000000' face='Verdana' size=1><a href='#' onClick='history.go(-1)'><-Tilbage</a></font></p>" End If
' Rydder op efter os 'myConn.Close 'Set myConn = Nothing %> ________________________________________________
Men den siger bare: ___________________ Microsoft VBScript runtime error '800a01a8'
Ja, nu har jeg fjernet dem... Men det virker stadig ike, hvis man for eksempel søger på 'amt' i feltet ' Fritekst'!
Så siger den dette: ___________________ Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/sog/fritidsjobs/sog_arbejdere.asp, line 75 _______________________
(Og jo, der ER over 70 linjer, men jeg har bare ikke skrevet al HTML uden om ASP-koden herinde på Eksperten! Skal jeg gøre det, så du kan se det hele?)
<% ' Opbygger en dynamisk SQL streng sqlWhere = "" if Request.Form("alder") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " alder = '" & Request.Form("alder") & "'" end if if Request.Form("kon") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " kon= '" & Request.Form("kon") & "'" end if if Request.Form("amt") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " amt= '" & Request.Form("amt") & "'" end if if Request.Form("kommune") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " kommune= '" & Request.Form("kommune") & "'" end if if Request.Form("job") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " job= '" & Request.Form("job") & "'" end if if Request.Form("fritekst") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " fritekst LIKE '%" & Request.Form("fritekst") & "%'" end if
strSQL = "SELECT id, [navn], email, alder, amt, kommune, job, ansogning FROM ansogning " if sqlWhere <> "" then strSQL = strSQL & " WHERE " & sqlWhere
' Skaber DSNLess forbindelse til DBen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/ansogning.mdb")
' 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 "<font face='Verdana' size='2pt.'><b>Alle job-ansøgere<br></b><hr color='#000000' size='1'><br></font>" Response.Write "<table width='100%' border=1 cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#000000'>" Response.Write "<tr><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Fuld ansøgning</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Navn</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Alder</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Amt</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Kommune</font></th><th bgcolor='#5E9464' background='../images/table_header1.bmp'><font color='#ffffff' face='Verdana' size=2>Jobønske</font></th></tr>" Do While Not rs.EOF %> <tr><td><font color="#000000" face="Verdana" size=2><p align=center><a href="#" onclick="popup('profil.asp?id=<%=rs("id")%>','Ansøgning','220','480');">Læs hel profil</a></p></font></td> <% Response.Write "<td> <a href='mailto:" & rs("email") & "?subject=Angående job-ansøgning på Søg.dk'><font color='#000000' face='Verdana' size=2>" & rs("navn") & " </font></a></td>" Response.Write "<td><font color='#000000' face='Verdana' size=2> " & rs("alder") & " </font></td>" Response.Write "<td><font color='#000000' face='Verdana' size=2> " & rs("amt") & " </font></td>" Response.Write "<td><font color='#000000' face='Verdana' size=2> " & rs("kommune") & " </font></td>" Response.Write "<td><font color='#000000' face='Verdana' size=2> " & rs("job") & " </font></td>" rs.MoveNext Loop Response.Write "</table><br><hr color='#000000' size='1'><font color='#000000' face='Verdana' size=1><a href='#' onClick='history.go(-1)'><-Tilbage</a></font>" Else ' Hvis der ikke er fundet poster på søgningen Response.Write "<p><font color='#000000' face='Verdana' size=2>Der er ikke fundet noget på denne søgning!</font><br><br><font color='#000000' face='Verdana' size=1><a href='#' onClick='history.go(-1)'><-Tilbage</a></font></p>" End If
' Rydder op efter os 'myConn.Close 'Set myConn = Nothing %>
nåååh - nu kan jeg se fejlen... første gang jeg læste dit spm. forstod jeg på det at du havde et felt i databasen der hed fritekst og det har du jo ikke :)
Så prøv denne i stedet;
sqlWhere = "" if Request.Form("alder") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " alder = '" & Request.Form("alder") & "'" end if if Request.Form("kon") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " kon= '" & Request.Form("kon") & "'" end if if Request.Form("amt") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " amt= '" & Request.Form("amt") & "'" end if if Request.Form("kommune") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " kommune= '" & Request.Form("kommune") & "'" end if if Request.Form("job") <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " sqlWhere = sqlWhere & " job= '" & Request.Form("job") & "'" end if if Request.Form("fritekst") <> "" then sqlWhere2 = " alder = '" & Request.Form("fritekst") & "'" sqlWhere2 = sqlWhere2 & " OR kon = '" & Request.Form("fritekst") & "'" sqlWhere2 = sqlWhere2 & " OR amt = '" & Request.Form("fritekst") & "'" sqlWhere2 = sqlWhere2 & " OR kommune = '" & Request.Form("fritekst") & "'" sqlWhere2 = sqlWhere2 & " OR job = '" & Request.Form("fritekst") & "'" end if
strSQL = "SELECT id, brugernavn, [navn], email, alder, amt, kommune, job, ansogning FROM ansogning " if sqlWhere <> "" then strSQL = strSQL & " WHERE (" & sqlWhere & ") if sqlWhere2 <> "" and sqlWhere <> "" then strSQL = strSQL & " AND (" & sqlWhere2 & ") else strSQL = strSQL & " WHERE (" & sqlWhere2 & ") end if
Jeps... Den er der næsten nu... Det eneste der er galt er, at den søger i databasen efter PRÆCIS hvad jeg skriver i feltet 'Fritekst'... Det vil sige skriver jeg 'Amt' kommer den ikke med nogen resultater... Kun hvis jeg skriver 'københavns amt'! Ka' du hjælpe med det?
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.