Avatar billede t2o Nybegynder
18. januar 2002 - 09:16 Der er 6 kommentarer og
1 løsning

ASP tjekke og skrive til db

jeg er ved at lave et program der skal samle stemmer ind. Hvis et recordset er = det der bliver stemt på skal den tælle en op i den persons stemmer....men der er noget galt, er der en der vil gi\' et bud?
her er koden:
oplysningerne samles op her:
<%
Set DataConn = Server.CreateObject(\"ADODB.Connection\")
Set strRecSet = server.CreateObject(\"ADODB.Recordset\")
DBSti = \"DBQ=\" & Server.Mappath(\"Awarddb.mdb\")
DataConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBSti
%>

<form name=\"form1\" method=\"post\" action=\"AwardAnswer.asp\">
    <input type=\"text\" name=\"Nominee\">
    <input type=\"text\" name=\"SongName\">
    <input type=\"text\" name=\"SongLink\">
    <input type=\"submit\" name=\"Submit\" value=\"Submit\">
</form>

her skrives de til db:
<%
Set DataConn = Server.CreateObject(\"ADODB.Connection\")
Set DataConn1 = Server.CreateObject(\"ADODB.Connection\")
Set stromr = server.CreateObject(\"ADODB.Recordset\")
DBSti = \"DBQ=\" & Server.Mappath(\"Awarddb.mdb\")
DataConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBSti
%>

<%
If request.form(\"Nominee\") & request.form(\"SongName\") & request.form(\"SongLink\") = DataConn ( Nominee, SongName, SongLink) then
then DataConn(\"vote\") = DataConn(\"vote\") +1   
Else
    mySQL = \"INSERT INTO Nominees ( Nominee, SongName, SongLink)\"
    mySQL = mySQL & \" VALUES (\'\" & request.form(\"Nominee\") & \"\',\'\" & request.form(\"SongName\") & \"\',\'\" & request.form(\"SongLink\") & \"\')\"
Dataconn.execute(mySQL)
End If

response.write \"your vote is registered.\"
%>

Avatar billede marit Nybegynder
18. januar 2002 - 09:25 #1
Jeg syntes at din ifsætning ser forkert ud.

If request.form(\"Nominee\") & request.form(\"SongName\") & request.form(\"SongLink\") = DataConn ( Nominee, SongName, SongLink) then
then

Nu kan jeg ikke helt gennemskue hvad der skal sammenlignes, men prøv at tage en ting ad gangen
fx. cstr(request.form(\"Nominee\")) = cstr(stromr (\"Nominee\"))

du skal også bruge recordsettet og ikke forbindelsen til at få feltindholdet ud. Og jeg mener kun at du kan tage et felt ud af gangen. prøv at liste det ud, både formfelter og databasefelter, før at du sammenligner.
Avatar billede cape Nybegynder
18. januar 2002 - 09:33 #2
Den if-sætning er forkert....for det første er det ikke & men AND også kan man selv ikke det du vil på denne måde...
Avatar billede cape Nybegynder
18. januar 2002 - 09:34 #3
som Marit skriver forneden....gør som ham skriver.
Avatar billede t2o Nybegynder
18. januar 2002 - 09:36 #4
Cape: Hvis nan ikke kan det på den måde....hvad med at give et forslag så.
eller henvise til en side hvor der er et ligende forslag.
Avatar billede cape Nybegynder
18. januar 2002 - 09:41 #5
t20 - som jeg skriver i den anden kommentar - så skal du gøre som Marit skriver..

\"Og jeg mener kun at du kan tage et felt ud af gangen. prøv at liste det ud, både formfelter og databasefelter, før at du sammenligner.\"...

Jeg kan jo ikke sige det samme som ham....

Tag og lav 3 varibale - fyld de 3 variable op med tingene fra databasen. også sammenlign en efter en med request.form(\"SongLink\") og...

Det er det samme som Marit og det er rigtig - så gør det og giv ham nogle point :)
Avatar billede marit Nybegynder
18. januar 2002 - 09:48 #6
Hun...
Jeg mener nok at du kan sammenligne 3 felter på en gang.

du tager først dit recordset, og løber det igennem.


do until stromr.eof
  if (cstr(request.form(\"Nominee\"))=cstr(stromr(\"Nominee\"))) AND cstr(request.form(\"SongName\"))=cstr(stromr(\"SongName\"))) AND cstr(request.form(\"SongLink\"))=cstr(stromr(\"SongLink\"))) then

  indæt i db

  end if
  stromr.movenext
loop

men få en ting til at virke først. Først læs dit recordset ud, så formfelterne, og så sammenlign.
Avatar billede cape Nybegynder
18. januar 2002 - 09:53 #7
ja - du kan godt - bare ikke denne måde t2o har valgt at gøre det på..:)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester