Får inte detta att funka. Den loopar inte genom RS utan kollar bara den första. Förmodligen bara ett tankefel från mig (stort tankefel)... med vad?
<%
SQL = "SELECT user2 FROM tbl_user"
set RS = db.Execute(SQL)
Do until RS.EOF
if Request.Form("user2") = RS("user2") then
session("finns") = "Det finns redan en användare med det namnet. Välj ett annat"
Response.Redirect("new.asp")
else if request.form("user2") = "" then
session("finns") = "Du måste välja ett användarnamn"
Response.Redirect("new.asp")
else
Response.Redirect("pass.asp")
end if
end if
RS.MoveNext
Loop
%>
Det är bättre att lägga in villkoret i sql-satsen.
<%
if request.form("user2") = "" then
session("finns") = "Du måste välja ett användarnamn"
Response.Redirect("new.asp")
end if
SQL = "SELECT user2 FROM tbl_user where user2 = '" & Request.Form("user2") & "'"
set RS = db.Execute(SQL)
exists = not rs.eof
rs.close
db.close
if exists then
session("finns") = "Det finns redan en användare med det namnet. Välj ett annat"
Response.Redirect("new.asp")
end if
Response.Redirect("pass.asp")
%>
Hej, ställ vilkoret i SQL-frågan istället. Det är bättre.
mvh Jörgen
<%
SQL = "SELECT user2 FROM tbl_user " & _
" WHERE user2 = '"& request.form("user2") &"' "
set RS = db.Execute(SQL)
If RS.EOF Then
'#-- användanamnet fanns inte --
else
Do until RS.EOF
'#-- användanamnet fanns --
RS.MoveNext
Loop
End If
%>
Hej, du behöver hämta mindre information från databasen om du ställer villkoret i SQL-frågan. Då får du nämligen bara den information du behöver.
Observera att jag menade inte att min kod var bättre än LarsG:s, (vi skrev våra inlägg samtidigt) utan av den anledning jag skrev ovan. Precis som LarsG också påpekade.