Hejsan! vad är det som inte fungerar? <code> Nu verkar det funka som det ska ;) ...Sökfunktion..
Jag skulle vilja ha hjälp med en liten sökfunktion till mitt community.
Jag har ett formulär där man skriver in vad man söker på, t.ex namn(txtNamn), ålder(txtAlder), stad(txtStad), online(txtOnline), kön(txtKon)
Så här ser sökningen ut, men den verkar inte funka riktigt som den ska!
Se om ni kan hitta vad jag gjort för fel.
<%
If Request.QueryString("txtSok") = "medlem" Then
If Request.Form("txtNamn") <> "" Then
SQL = "SELECT * FROM tblAnvandare WHERE fltNamn LIKE '%" & Request.Form("txtNamn") & "%'"
End If
If Request.Form("txtAlder") <> "" Then
SQL = "SELECT * FROM tblAnvandare WHERE fltKon LIKE '%" & Request.Form("txtAlder") & "%'"
End If
If Request.Form("txtStad") <> "" Then
SQL = "SELECT * FROM tblAnvandare WHERE fltStad LIKE '%" & Request.Form("txtStad") & "%'"
End If
If Request.Form("txtKon") <> "" Then
SQL = "SELECT * FROM tblAnvandare WHERE fltStad LIKE '%" & Request.Form("txtKon") & "%'"
End If
If Request.Form("txtOnline") <> "" Then
SQL = "SELECT * FROM tblAnvandare WHERE fltSistaInlogg > #" & DateAdd("n", -5, Now) & "# ORDER BY fltSistaInlogg DESC"
End If
Set rs = conn.Execute(SQL)
%>
<tr>
<td>
<table width="100%" height="5" cellpadding="2" cellspacing="0" border="0" bordercolor="#000000">
<%
If rs.BOF = False Then%>
<tr>
<td width="300" align="left"><span class="10Bold">Namn:</span></td>
<td align="right"><span class="10Bold">Stad:</span></td>
</tr>
<%
Do Until rs.EOF
%>
<td align="left" valign=top>&person=visa"><%=rs("fltNamn")%></td>
<td align="right" valign=top><span class="10Solid"><%=rs("fltStad")%></span></td>
</tr>
<%
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Else
%>
<tr>
<td align="left"><span class="10Bold">Inga sökträffar!</span></td>
</tr>
<%
End if
%>
</table>
</td>
</tr>
<%
End If
%>
mvh MagnusSv: Sökfunktion..
Felmeddelanen? Felaktiga data?
Att använda LIKE på ålder och kön, verkar vara lite "overkill", kön borde väl bara vara M/F eller 1/0 ...
Att köra LIKE på ålder kan ju ge lite konstiga resultat, söker du på 2 så visas antagligen 2, 20, 22 om fältet är ett string fält
Har du satt rätt datatyp på de olika fälten? Som det ser ut nu så har du strängfält på samtliga kolumnerSv: Sökfunktion..
<%
Dim strSQL
Dim strWhere
If Request.QueryString("txtSok") = "medlem" Then
If Len(Request.Form("txtNamn")) > 0 Then
strWhere = strWhere & " AND fltNamn LIKE '%" & Replace(Request.Form("txtNamn"), "'", "''") & "%'"
End If
If Len(Request.Form("txtAlder")) > 0 Then
strWhere = strWhere & " AND fltAlder LIKE '%" & Replace(Request.Form("txtAlder"), "'", "''") & "%'"
End If
If Len(Request.Form("txtStad")) > 0 Then
strWhere = strWhere & " AND fltStad LIKE '%" & Replace(Request.Form("txtStad"), "'", "''") & "%'"
End If
If Len(Request.Form("txtKon")) > 0 Then
strWhere = strWhere & " AND fltKon LIKE '%" & Replace(Request.Form("txtKon"), "'", "''") & "%'"
End If
If Len(Request.Form("txtOnline")) > 0 Then
strWhere = strWhere & " AND fltSistaInlogg > #" & DateAdd("n", -5, Now) & "#"
End If
If Len(strWhere) > 0 Then
strSQL = "SELECT * FROM tblAnvandare WHERE " & Mid(strWhere, 6)
Else
strSQL = "SELECT * FROM tblAnvandare"
End If
Set rs = conn.Execute(SQL)
%>
<tr>
<td>
<table width="100%" height="5" cellpadding="2" cellspacing="0" border="0" bordercolor="#000000">
<%
If rs.BOF = False Then
%>
<tr>
<td width="300" align="left"><span class="10Bold">Namn:</span></td>
<td align="right"><span class="10Bold">Stad:</span></td>
</tr>
<%
Do Until rs.EOF
%>
<td align="left" valign=top>&person=visa"><%=rs("fltNamn")%></td>
<td align="right" valign=top><span class="10Solid"><%=rs("fltStad")%></span></td>
</tr>
<%
rs.MoveNext
Loop
Else
%>
<tr>
<td align="left"><span class="10Bold">Inga sökträffar!</span></td>
</tr>
<%
End if
rs.Close
Set rs = Nothing
%>
</table>
</td>
</tr>
<%
End If
%>
</code>Sv: Sökfunktion..
Fick ändra If Len(Request.Form("txtOnline")) > 0 Then
till If Len(Request.Form("txtOnline")) <> 0 Then
Magnus