15. august 2001 - 21:08Der er
44 kommentarer og 1 løsning
tjek af eksisterende poster
Når nogen prøver at tilmelde et link vil jeg have at den tjekker om url\'en er der i forvejen. Jeg det nedenstående kode, men den skriver at url findes i forvejen selv om den ikke gør ??
Conn.Open strConnect
Set rs = Server.CreateObject(\"ADODB.RecordSet\") strSQL = \"SELECT COUNT(*) AS cnt FROM links WHERE URL LIKE \'\" & Request.form(\"2\") & \"\'\" rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic if( rs.EOF OR rs.BOF ) then strSQL = \"INSERT INTO links ( LinkName, URL, sogeord, kategori, Beskrivelse, Email, Rigtignavn ) \" strSQL = strSQL & \" VALUES(\'\" & Request.Form(\"1\") & \"\',\'\" & Request.Form(\"2\") & \"\',\'\" & Request.Form(\"sogeord\") & \"\',\" strSQL = strSQL & \"\'\" & Request.Form(\"kategori\") & \"\',\'\" & Request.Form(\"Beskrivelse\") & \"\',\'\" & Request.Form(\"Email\") & \"\',\" strSQL = strSQL & \"\'\" & Request.Form(\"Rigtignavn\") & \"\'\" Conn.Execute strSQL else response.redirect (\"form1.htm\") end if rs.Close Set rs = Nothing Conn.Close set Conn = Nothing %>
SQL = \"select * from Links where UCase(URL) = UCase(\'\"& request.form(\"2\") &\"\')\" Set RS = conn.Execute(SQL) if not RS.EOF then response.write \"Findes allerede\" end if
SQL = \"select * from Links where UCase(URL) = UCase(\'\"& request.form(\"2\") &\"\')\" Set RS = conn.Execute(SQL) if not RS.EOF then response.write \"Findes allerede\" end if
Sandsynligvis skal du bare have en response.end ind efter \"findes allerede\", for du vil jo ikke lave en insert hvis den allerede findes. I de tilfælde hvor den ikke findes og du derfor vil lave en insert, skal du erstatte din rs.open med rs.execute, d.v.s. du skal ikke åbne det igen, men blot køre et nyt SQL statement.
OK altså SQL = \"select * from Links where UCase(URL) = UCase(\'\"& request.form(\"2\") &\"\')\" Set RS = conn.Execute(SQL) if not RS.EOF then response.write \"Findes allerede\" respone.end end if
SQL = \"select * from Links where UCase(URL) = UCase(\'\"& request.form(\"2\") &\"\')\" Set RS = conn.Execute(SQL) if not RS.EOF then response.write \"Findes allerede\" respone.end <---- HER :-) end if
SQL = \"select * from Links where UCase(URL) = UCase(\'\"& request.form(\"2\") &\"\')\" Set RS = conn.Execute(SQL) if not RS.EOF then response.write \"Findes allerede\" end if
rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic <-- Her åbner du, men det er allerede åbnet. Samtidig kører du med strSQL som SQL statement, men det bliver først defineret herunder.
strSQL = \"INSERT INTO links ( LinkName, URL, sogeord, kategori, Beskrivelse, Email, Rigtignavn ) \" strSQL = strSQL & \" VALUES(\'\" & Request.Form(\"1\") & \"\',\'\" & Request.Form(\"2\") & \"\',\'\" & Request.Form(\"sogeord\") & \"\',\" strSQL = strSQL & \"\'\" & Request.Form(\"kategori\") & \"\',\'\" & Request.Form(\"Beskrivelse\") & \"\',\'\" & Request.Form(\"Email\") & \"\',\" strSQL = strSQL & \"\'\" & Request.Form(\"Rigtignavn\") & \"\'\" Conn.Execute strSQL <- denne linie skal du beholde, i stedet for den med rs.open
SQL = \"select * from Links where UCase(URL) = UCase(\'\"& request.form(\"2\") &\"\')\" Set RS = conn.Execute(SQL) if not RS.EOF then response.write \"Findes allerede\" response.end end if
SQL = \"select * from Links where UCase(URL) = UCase(\'\"& request.form(\"2\") &\"\')\" Set RS = conn.Execute(SQL) if not RS.EOF then response.write \"Findes allerede\" response.end end if
WHAT.. du kan ikke mene at når du bruger min kode så skal jeg ikke have point... det er jo ikke fair...
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.