Avatar billede w13 Novice
23. oktober 2004 - 20:43 Der er 30 kommentarer og
1 løsning

Udskriv 5 hyppigste poster

Hej Eksperter...

Jeg ville bare høre, hvordan man plusser ind i en database? Altså +1 til kolonnen "favo", hvor "id2" = request.querystring("id") (hvordan det nu er man skriver det?) fra tabellen favoritter.

Håber I kan hjælpe!
Venlig hilsen
  W13
Avatar billede w13 Novice
23. oktober 2004 - 20:44 #1
Undskyld titlen... Men den beskriver det, jeg skal bruge den til!
Avatar billede hmortensen Nybegynder
23. oktober 2004 - 20:48 #2
UPDATE tabel SET felt = felt + 1 WHERE id = 1
Avatar billede w13 Novice
23. oktober 2004 - 21:03 #3
Det virker ikke... Hvad gør jeg galt her:

<%
set conn = server.createobject("adodb.connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../admin/db/database.mdb")
conn.open strDSN
UPDATE [favorit] SET antal = antal + 1, id2 = '"& request.querystrin("id") &"' WHERE id = '"& request.querystring("id") & "'
conn.execute(sql)
%>
_______________________________________
Den siger "Expected End of statement"
Avatar billede eagleeye Praktikant
23. oktober 2004 - 21:09 #4
Der mangler en " tilsidst i linjen, så det bliver & "'"
Avatar billede w13 Novice
23. oktober 2004 - 21:14 #5
Desværre... Jeg får stadig samme fejl...
Avatar billede eagleeye Praktikant
23. oktober 2004 - 21:17 #6
hmm ja det overså jeg lige ;) du skal også skriver det sådan her så du ligger det ind i en variable

sql = "UPDATE [favorit] SET antal = antal + 1, id2 = '"& request.querystrin("id") &"' WHERE id = '"& request.querystring("id") & "'"

Er Id2 io id tal kolonner skal du ikke hvade ' omkring med mindre du bruger mySQL.
Avatar billede w13 Novice
23. oktober 2004 - 21:49 #7
Så virker det vist nogenlunde... Men nu er der et nyt problem... Jeg rettede lidt i koden, sådan at flere querystrings blev gemt... En af disse querystrings hed "link" og indeholdt naturligvis et link... Men det så får jeg fejl... Ka' det have noget at gøre med skråstregerne, kolonnet eller punktummerne? Og hvad kan gøres, får at den alligevel kan gemme dette? (http://www.miniclip.com/bushshootout.htm)
Avatar billede w13 Novice
23. oktober 2004 - 22:39 #8
"Syntax error in update statement"

sql = "UPDATE [favorit] SET antal = antal + 1, id2 = "& request.querystring("id") &", link = '"& request.querystring("link") &"', picture = '"& request.querystring("picture") &"', WHERE id2 = "& request.querystring("id") & ""
Avatar billede eagleeye Praktikant
23. oktober 2004 - 22:47 #9
Ja når du laver QueryStringen kan du prøve at sætte Server.URLEncode omkring linket:

link = "http://www.miniclip.com/bushshootout.htm"

..&link="& Server.URLencode(link)&"...
Avatar billede w13 Novice
23. oktober 2004 - 22:49 #10
Hmmm... Jeg prøvede lige at fjerne alle specialtegn, og den gav mig alligevel den fejl...
Avatar billede eagleeye Praktikant
23. oktober 2004 - 22:51 #11
Hvilken fejl får du?
Avatar billede w13 Novice
23. oktober 2004 - 22:52 #12
Microsoft JET Database Engine error '80040e14'

Syntax error in UPDATE statement.

/web-gamez/spilprofil.asp, line 12
Avatar billede eagleeye Praktikant
23. oktober 2004 - 22:54 #13
Prøv at udskrive sql i stedet for udføre den så kan det være lettere at se syntax fejl.

sql = "UPDATE [favorit] SET antal = antal + 1, id2 = "& request.querystring("id") &", link = '"& request.querystring("link") &"', picture = '"& request.querystring("picture") &"', WHERE id2 = "& request.querystring("id") & ""
Response.Write sql
Response.End
Avatar billede w13 Novice
23. oktober 2004 - 23:05 #14
UPDATE [favorit] SET antal = antal + 1, id2 = 1, link = 'http//wwwminiclipcom/bushshootouthtm', picture = 'bushshootoutgamesmallicongif', WHERE id2 = 1
Avatar billede eagleeye Praktikant
23. oktober 2004 - 23:08 #15
ok, der er kommet et komma ind før WHERE det må der ikke være så prøv at fjerne det komma der er før WHERE og slet de to ekstra linjer om det så virker
Avatar billede w13 Novice
23. oktober 2004 - 23:10 #16
Microsoft VBScript runtime error '800a01a8'

Object required: ''

/web-gamez/spilprofil.asp, line 12
Avatar billede eagleeye Praktikant
23. oktober 2004 - 23:12 #17
Så prøv at vise linjerne, det skulle ikke gøre det.
Avatar billede w13 Novice
23. oktober 2004 - 23:17 #18
Hvilke linjer?
Avatar billede w13 Novice
23. oktober 2004 - 23:17 #19
(Altså linje tolv er update-sætningen...)
Avatar billede eagleeye Praktikant
23. oktober 2004 - 23:18 #20
Ok så prøv at vise den
Avatar billede w13 Novice
23. oktober 2004 - 23:19 #21
Sådan her:
sql = "UPDATE [favorit] SET antal = antal + 1, id2 = "& request.querystring("id") &", link = '"& request.querystring("link") &"', picture = '"& request.querystring("picture") &"' WHERE id2 = "& request.querystring("id") & ""

Eller skal jeg udskrive sætningen?
Avatar billede eagleeye Praktikant
23. oktober 2004 - 23:33 #22
hmm det forstår jeg ikke helt, det eneste object er request.querystring og det er skrevet rigtigt så vidt jeg kan se.
Avatar billede hmortensen Nybegynder
24. oktober 2004 - 12:32 #23
Hvorfor vil du opdatere id2 ?
Det må nødvendigvis være det samme, ellers kan du jo ikke bruge det i where kriteriet
Avatar billede w13 Novice
24. oktober 2004 - 12:35 #24
Ja, det er sandt... Hmmm... Det kom nok af, at jeg senere ville ændre koden til, at hvis der ikke var nogen i forvejen, skulle den oprettes... Ka' i hjælpe med det, tror i, så det virker? Altså den skal kun opdatere, hvis der allerede er en post, hvor "Id2" = querystringen "Id", og ellers skal den oprette posten...
Avatar billede eagleeye Praktikant
24. oktober 2004 - 15:11 #25
Der er to metoder:

1. Lav en select som henter id2=querystringn. Er recordsetet tomt så findes id'et ikke og man laver en Insert ellers laves en update.

2. Lav en Update og brug et tjek på recordaffected fra connection hvis det er 0 så findes ID'et ikke og man laver så en Insert.
Avatar billede w13 Novice
24. oktober 2004 - 15:51 #26
Ok, endnu engang må jeg nok indrømme at jeg er temmelig (totalt) spasser til ASP...
Er det noget i denne stil:
_________________________________

<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb")

strSQL = "SELECT * FROM [favorit] where [id2] = "& request.querystring("id") &""

Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then

sql = "UPDATE [favorit] SET [antal] = [antal] + 1, [link] = '"& request.querystring("link") &"', [picture] = '"& request.querystring("picture") &"' WHERE [id2] = "& request.querystring("id") &""
Set rs = myConn.Execute(strSQL)

    Else
    ' Hvis der ikke er skrevet noget
   
      rs.Open strSQL, strDSN, 2, 2
  rs.AddNew

  rs("link") = Request.Querystring("link")
  rs("picture") = Request.Querystring("picture")
  rs("id2") = Request.Querystring("id")

  rs.Update

  'lukker pænt igen
  rs.Close
  set rs = Nothing

End If

myConn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
24. oktober 2004 - 16:24 #27
Ja det er det, dog skal du lige havde styr på vaiable navne sql og strSQL så de rigtige bliver udført. Jeg ville lave det sådan her:

<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb")

strSQL = "SELECT * FROM [favorit] where [id2] = "& request.querystring("id") &""

Set rs = myConn.Execute(strSQL)
If Not rs.EOF Then

  sql = "UPDATE [favorit] SET [antal] = [antal] + 1, [link] = '"& request.querystring("link") &"', [picture] = '"& request.querystring("picture") &"' WHERE [id2] = "& request.querystring("id") &""
  myConn.Execute(SQL)

Else
    ' Hvis der ikke er skrevet noget
   
  sql = "INSERT INTO (link, picture, id2) VALUES ("
  sql = sql & "'" & Request.Querystring("link") & "', "
  sql = sql & "'" & Request..Querystring("picture") & "', "
  sql = sql & Request.Querystring("id")
  sql = sql & ")"
 
  myConn.Execute(sql)
End If

myConn.Close
Set Conn = Nothing
%>
Avatar billede w13 Novice
24. oktober 2004 - 17:02 #28
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/web-gamez/spilprofil.asp, line 28
Avatar billede eagleeye Praktikant
24. oktober 2004 - 17:03 #29
ok, der mangler tabel angivelse så prøv at rette:

sql = "INSERT INTO (link, picture, id2) VALUES ("

Til denne:

sql = "INSERT INTO [favorit] (link, picture, id2) VALUES ("
Avatar billede w13 Novice
24. oktober 2004 - 17:06 #30
YES! Jaaaaa... :-) Det virker... Juhu... Nu har du jo hjulpet mig en del Eagleeye, så pointene må gå til dig...
Avatar billede eagleeye Praktikant
24. oktober 2004 - 17:07 #31
Ok :) Så laver jeg lige et svar.
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