Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:20 Der er 25 kommentarer og
1 løsning

Igen et spørgsmål. får lige pludselig denne fejl.

Jeg får denne fejl når jeg skal eksekvere denne kode...

<!--#include file="kontrol.asp"-->
<!--#include file ="ConnectionTilDatabase.asp" -->
<HTML>
<HEAD>
<TITLE>Bruger information</TITLE>
</HEAD>
<BODY>
<center>
<ul>
  <tr>   
        <td><h2>Brugerens kontaktoplysninger</h2></td>
  </tr>
  <%
    dim id
    id = Request.querystring("id")

        'Hent fra databasen afhængig af værdien id fra URL
        strSQL = "Select * from Bruger Where MedlemsID = "& id &" Order by MedlemsID Desc"
        Set rs = Conn.Execute(strSQL)

    ' Skriv personens data
if not (rs.bof or rs.eof) then
'do while not rs.eof
        Response.Write "<dt>Navn:</dt><dd>" & rs("Fornavn") & " " & rs("Efternavn") & "</dd>"
        Response.Write "<dt>Telefon:</dt><dd>" & rs("Telefon") & "</dd>"
        Response.Write "<dt>E-mail:</dt><dd>" & rs("email") & "</dd>"       
                   
        Response.Write "<p><a href=""Medlemmer1.asp"">Retur til Medlems oplysninger</a></p>"
        Response.Write "<p><a href=""Retbruger.asp?id="& rs("MedlemsID") &""">Rediger Brugerinfo</a></p>"
'response.write "<br>"
'rs.movenext
'loop
    Conn.Close
    Set Conn = Nothing
End if

'HUSK!
'Man skal ALTID checke, om der findes noget i database, inden man prøver på at hive noget ud:
%>
</center>
</dl>
</td>
<td width="">&nbsp;</td>
  </tr>
</ul>
</table>
</BODY>
</HTML>


FEJL

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "MedlemsID =".
/Asp opgaver/Rediger.asp, line 19
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:22 #1
Du checker ikke om der er noget i id:

    id = Request.querystring("id")

Hvor er check'et? :-)

Der står åbenbart ikke noget i Request.querystring("id") (dvs, side.asp?id=DerErIkkeNogetHer)

/theSurfer
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:26 #2
q = Request.querystring("id")
'if q <> "" then
q = CInt(q)

den er sat ind nu, men nu får jeg bare en tom side, den henter ikke id'et igen
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:27 #3
Hvordan ser den fulde kode ud?

/theSurfer
Avatar billede busschou Praktikant
31. maj 2005 - 15:28 #4
det dur ikke det tjek du laver når du kalder den id så skal det være
id = Request.querystring("id")
if id <> "" then
id = CInt(id)
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:28 #5
<!--#include file="kontrol.asp"-->
<!--#include file ="ConnectionTilDatabase.asp" -->
<HTML>
<HEAD>
<TITLE>Bruger information</TITLE>
</HEAD>
<BODY>
<center>
<ul>
  <tr>   
        <td><h2>Brugerens kontaktoplysninger</h2></td>
  </tr>
  <%   
q = Request.querystring("id")
if q <> "" then
q = CInt(q)
        'Hent fra databasen afhængig af værdien id fra URL
        SQL = "Select * from Bruger Where MedlemsID = "& q &" Order by MedlemsID Desc"
        Set rs = Conn.Execute(SQL)

    ' Skriv personens data
if not (rs.bof or rs.eof) then
'do while not rs.eof
        Response.Write "<dt>Navn:</dt><dd>" & rs("Fornavn") & " " & rs("Efternavn") & "</dd>"
        Response.Write "<dt>Telefon:</dt><dd>" & rs("Telefon") & "</dd>"
        Response.Write "<dt>E-mail:</dt><dd>" & rs("email") & "</dd>"       
                   
        Response.Write "<p><a href=""Medlemmer1.asp"">Retur til Medlems oplysninger</a></p>"
        Response.Write "<p><a href=""Retbruger.asp?id="& rs("MedlemsID") &""">Rediger Brugerinfo</a></p>"
'response.write "<br>"
'rs.movenext
'loop
    Conn.Close
    Set Conn = Nothing
End if

'HUSK!
'Man skal ALTID checke, om der findes noget i database, inden man prøver på at hive noget ud:
%>
</center>
</dl>
</td>
<td width="">&nbsp;</td>
  </tr>
</ul>
</table>
</BODY>
</HTML>
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:29 #6
det er når jeg skal redigere i brugerens oplysninger
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:29 #7
<td width="60%">
<%
q = Request.querystring("id")
if q <> "" then
q = CInt(q)

    strSQL = "Select * from Bruger Where MedlemsID = "& q

  set rs = Conn.execute(strSQL)
  if not (rs.bof or rs.eof) then
    Str = str & "<table>"
    Str = str & "<Form Action=""Gemredigerbruger.asp"" Method=""post"">"
    Str = str & "<tr><td colspan=""2""><h2>Personlige oplysninger</h2></td></tr>"
    Str = str & "<tr><Input type=""Hidden"" Name=""brugerid"" value=" & Request.queryString("id") & " "
    Str = str & "<tr><td>VærelseID</td><td><Input type=""Hidden"" Name=""MedlemsID"" value=""" & q & """><Input type=""Text"" Name=""VærelseID"" value=""" & rs("VærelseID") & """></td></tr>"
    Str = str & "<tr><td>Fornavn</td><td><Input type=""Text"" Name=""Fornavn"" value=""" & rs("Fornavn") & """></td></tr>"
    Str = str & "<tr><td>Efternavn</td><td><Input type=""Text"" Name=""Efternavn"" value=""" & rs("Efternavn") & """></td></tr>"
    Str = str & "<tr><td>Password</td><td><Input type=""Text"" Name=""Password"" value=""" & rs("Password") & """></td></tr>"
    Str = str & "<tr><td>Postnr</td><td><Input type=""Text"" Name=""Postnr"" value=""" & rs("Postnr") & """></td></tr>"
    Str = str & "<tr><td>Adresse</td><td><Input type=""Text"" Name=""Adresse"" value=""" & rs("Adresse") & """></td></tr>"
    Str = str & "<tr><td>Telefon</td><td><Input type=""Text"" Name=""telefon"" value=""" &  rs("Telefon") & """></td></tr>"
    Str = str & "<tr><td>E-mail</td><td><Input type=""Text"" Name=""email"" value=""" & rs("email") & """></td></tr>"
    Str = str & "<tr><td>CPRnummer</td><td><Input type=""Text"" Name=""CPRnummer"" value=""" & rs("CPRnummer") & """></td></tr>"
    Str = str & "<tr><td></td><td align=""left""><Input type=""Submit"" Value=""Gem ændringer""></td></tr>"
    Str = str & "</FORM>"
    Str = Str & "</table>"
    else
        response.write "posten findes ikke i databasen!"
  End If

    response.write Str
    response.Write "<p><a href=""Medlemmer1.asp"">Retur til Medlems oplysninger</a></p>"

  Conn.Close
  Set Conn = Nothing
else
  response.write "fejl i querystring.."
end if
%>
</body>
</html>
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:32 #8
Du mangler et end if i 31/05-2005 15:28:27:

    Conn.Close
    Set Conn = Nothing
End if
End if ' denne manglede du

Fik du ikke en fejl, angående manglede end if?

/theSurfer
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:34 #9
Jo det gjorde jeg, og nu kan jeg også godt redigere i min profil, men når jeg så trykker gem, kommer den bare hen på "rediger" siden uden oplysninger.
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:35 #10
Egentligt burde check'et se sådan ud:

q = Request.querystring("id")
if q <> "" and IsNumeric(a) then
q = CInt(q)

Da "q" jo kunne komme til at indeholder "abc", hvilket ikke kan konverteres med CInt (giver bare en fejl)..

Med IsNumeric, checker man om det "q" indeholder, er et tal.

Man kan/skal evt bruge: if q <> "" and IsNumeric(a) = true then

/theSurfer
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:38 #11
Ok, men den der tomme side er der stadig hva kan jeg gøre ved det?
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:41 #12
1) Hvilken fil, er det du loader, når der kommer en blank side?
2) Kan du ikke lige sætte filnavne, på dine indlæg?: 31/05-2005 15:28:27 og 31/05-2005 15:29:20

/theSurfer
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:44 #13
31/05-2005 15:28:27 er Rediger.asp det er den jeg skal hente igen når jeg har gemt de nye oplysninger, så burde den komme frem med de nye oplysninger..



31/05-2005 15:29:20 er Retbruger.asp det er den jeg bruger til at rette i oplysningerne og når jeg trykker gem på denne siden skal jeg så ryge tilbage til rediger.asp hvor den viser de nye oplysninger..

undskyld forvirringen håber det hjalp lidt...:)
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:53 #14
Dvs:

1) Du går ind på rediger.asp, hvor du har oversigten, over alle medlemmer.
2) Du klikker på "Rediger Brugerinfo"-linket ud for et medlem, og ryger over til Retbruger.asp
3) Når du så har rettet profilen, og klikker på "Gem ændringer", sendes du over til "Gemredigerbruger.asp"
4) Du vil derefter gerne sendes over til punkt 1 (rediger.asp)?

Hvis ja, indsæt denne kode i "Gemredigerbruger.asp":

response.redirect "rediger.asp?id=" & q

q aflæses med request.form("MedlemsID"), men det ved du jo, da du ellers ikke kan gemme :-)

Hvis der er problemer, vis os koden fra "Gemredigerbruger.asp". Husk at skjule evt sti og brugernavn/password i din database-forbindelse..

/theSurfer
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:56 #15
PS:
koden response.redirect "rediger.asp?id=" & q skal indsættes efter:

conn.close
set conn = nothing
response.redirect "rediger.asp?id=" & q

Hvilket jeg regner med at du har, i filen "Gemredigerbruger.asp"... :-)


f.eks.:

sql = "update..."
conn.execute(sql)

conn.close
set conn = nothing
response.redirect "rediger.asp?id=" & q

Men det kommer an på, hvordan din nuværende kode ser ud..

/theSurfer
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:57 #16
<!--#include file ="ConnectionTilDatabase.asp" -->
<!--#include file ="kontrol.asp" -->

<%

SQL = "UPDATE Bruger"
SQL = SQL & " SET VærelseID = " & request.form("VærelseID") & ", "
SQL = SQL & "Fornavn = '" & request.form("Fornavn") & "', "
SQL = SQL & "Efternavn = '" & request.form("Efternavn") & "', "
SQL = SQL & "Password = '" & request.form("Password") & "', "
SQL = SQL & "Postnr = " & request.form("Postnr") & ", "
SQL = SQL & "Adresse = '" & request.form("Adresse") & "', "
SQL = SQL & "Telefon = '" & request.form("Telefon") & "', "
SQL = SQL & "Email = '" & request.form("Email") & "', "
SQL = SQL & "CPRnummer = " & request.form("CPRnummer") & " "

SQL = SQL & " WHERE MedlemsID=" & request.form("MedlemsID")

'response.write sql
conn.Execute(SQL)
conn.close
response.redirect "rediger.asp?id=" & q

%>

det er rigtigt men den henter ikke noget id den skriver bare :

http://localhost/Asp%20opgaver/rediger.asp?id=
oppe i adresselinien
Avatar billede chris1289 Nybegynder
31. maj 2005 - 15:59 #17
Den gemmer det godt nok i databasen..
Avatar billede thesurfer Nybegynder
31. maj 2005 - 16:04 #18
hmm.. hvor er dit check..? :-)

<%

if request.servervariables("method_post") = "POST" then
' husk at det sidste "POST", SKAL stå med STORT!

SQL = "UPDATE Bruger"
SQL = SQL & " SET VærelseID = " & request.form("VærelseID") & ", "
SQL = SQL & "Fornavn = '" & request.form("Fornavn") & "', "
SQL = SQL & "Efternavn = '" & request.form("Efternavn") & "', "
SQL = SQL & "Password = '" & request.form("Password") & "', "
SQL = SQL & "Postnr = " & request.form("Postnr") & ", "
SQL = SQL & "Adresse = '" & request.form("Adresse") & "', "
SQL = SQL & "Telefon = '" & request.form("Telefon") & "', "
SQL = SQL & "Email = '" & request.form("Email") & "', "
SQL = SQL & "CPRnummer = " & request.form("CPRnummer") & " "

SQL = SQL & " WHERE MedlemsID=" & request.form("MedlemsID")

'response.write sql
conn.Execute(SQL)
conn.close
response.redirect "rediger.asp?id=" & request.form("MedlemsID")

else
  response.write "Du har ikke submittet data! Gå til <a href=""rediger.asp"">oversigten</a>!"
end if

%>

jeg har rettet koden til..

/theSurfer
Avatar billede chris1289 Nybegynder
31. maj 2005 - 16:06 #19
Fejlen kommer frem, "jeg har ikke submittet data"
Avatar billede thesurfer Nybegynder
31. maj 2005 - 16:07 #20
Linien if request.servervariables("method_post") = "POST" then checker om der er submittet noget..

Du kunne også erstatte linien med if request.form("MedlemsID") <> "" then, da der jo skal submittes noget, før der står noget i request.form("MedlemsID")..

Men if request.servervariables("method_post") = "POST" then er bedre.. husk "POST" (store bogstaver) :-)

/theSurfer
Avatar billede thesurfer Nybegynder
31. maj 2005 - 16:08 #21
my bad.. :-)

"method_post" skal være "request_method" :-)

"method_post" giver jo ingen mening :-)

/theSurfer
Avatar billede thesurfer Nybegynder
31. maj 2005 - 16:11 #22
Svar smidt :-)

/theSurfer
Avatar billede chris1289 Nybegynder
31. maj 2005 - 16:12 #23
Ja okay... nu virker det....  Mange tak, nu er vi færdige med vores projekt, så nu bliver i nok fri for dumme spørgsmål, men i er klart bedre til at forklare tingene end min lærer, så derfor bruger jeg denne side..
Avatar billede thesurfer Nybegynder
31. maj 2005 - 16:13 #24
Jeg vil anbefale disse lektionerne: http://www.html.dk/tutorials/asp/

/theSurfer
Avatar billede thesurfer Nybegynder
31. maj 2005 - 16:14 #25
Takker for points :-)

/theSurfer
Avatar billede chris1289 Nybegynder
31. maj 2005 - 16:14 #26
ok mange tak
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