Avatar billede kragekjaer Praktikant
21. januar 2001 - 11:45 Der er 15 kommentarer og
2 løsninger

SQL-sætning, hvad går galt?

Jeg har en variabel der hedder countantal. Hver gang der er en der submitter en form skalder lægges 1 til denne i databasen.

En anden variabel ved navn countrate. Hver gang formen submittes skal der lægges en værdi til denne i databasen. Men jeg får denen fejl:

Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket \"\'\' + & \'\'\".

Førespørgslen ser sådan ud:

sqlString= \"update links set countantal = \'\"& countantal &\"\'+1, countrate = \'\"& countrate  &\"\' + & \'\" & rating &\"\' where \'\" & linkformid & \"\' =\" &link_id


Avatar billede mesterlars Nybegynder
21. januar 2001 - 11:54 #1
sqlstring = \"UPDATE link SET (countantal = countantal + 1) AND (countrate = countrate + \" & rating & \") WHERE (Ved ikke helt hvad du vil her)\"

ingen garanti for det virker, det er bare et skud

husk at så længe du refererer til felter i din database, skal du bare skrive feltets navn - kun når du refererer til variabler du skal bruge \" & variabel & \" - og så videre
Avatar billede kragekjaer Praktikant
21. januar 2001 - 12:01 #2
Tak. Jeg prøver lige.
Avatar billede kragekjaer Praktikant
21. januar 2001 - 12:14 #3
JEg forklarer lige hvad det er jeg laver: JEg har en liste af links, som brugeren kan rate. Hver gang formen submittes, skal jeg kunne regne det nye rate-tal ud. Det gøres ved at lægge rating tallene sammen (countrate) og dividere med antallet af dem der har stemt (countantal).

Variablen rating kommer fra formen, det samme gør linkformid.

update links set (countantal = countantal+1) AND (countrate = countrate + \'\" & rating &\"\') where \'\" & linkformid & \"\' =link_id\"

Nu får jeg denne fejl:

Der er en syntaksfejl i UPDATE-sætningen.
Avatar billede retep Nybegynder
21. januar 2001 - 12:21 #4
Har lige rettet lidt i ovenstående. Tror der var lidt fejl...

sqlstring = \"UPDATE link SET (countantal = countantal + 1),(countrate = countrate + \"& rating &\") WHERE link_id = \"& linkformid &\"

Det der er rettet er at de forskellige felter der opdateres sepereres med , i stedet for and. Derudover har jeg sat din where-clause på hvor jeg har fjernet \' -er\'ne da et id normalt ikke gemmes som en streng.

Heller ingen garanti for at det virker, da jeg ikke har testet det ;)

Mvh
Retep
Avatar billede mesterlars Nybegynder
21. januar 2001 - 12:31 #5
..men du mangler at afslutte med et \" (anførselstegn)
Avatar billede kragekjaer Praktikant
21. januar 2001 - 12:45 #6
Stadig syntax-fejl:

sqlString = \"UPDATE links SET (countantal = countantal + 1),(countrate = countrate + \'\"& rating &\"\') WHERE link_id = \'\"& linkformid &\'\"\"

Jeg har sat gåseøjne tilsidst.
Avatar billede kragekjaer Praktikant
21. januar 2001 - 12:47 #7
Nu får jeg denne underlige besked:

Fejltype:
Provider (0x80004005)
Uspecificeret fejl
/sim/links.asp, line 38


Browsertype:


Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Side:
POST 40 bytes to /sim/default.asp

POST Data:
linkformid=1&rating=4&rate=3&Submit=Rate
Avatar billede erikjacobsen Ekspert
21. januar 2001 - 12:49 #8
sqlString = \"UPDATE links SET countantal=countantal + 1,countrate=countrate+\"&
rating &\" WHERE link_id=\"& linkformid

Prøv lige det
Avatar billede mesterlars Nybegynder
21. januar 2001 - 12:49 #9
der skal kun \" udemom dine variable - ikke \'\"
Avatar billede kragekjaer Praktikant
21. januar 2001 - 12:51 #10
Sorry, glemte at opdatere, men der er stadig syntax-fejl i update-sætningen
Avatar billede kragekjaer Praktikant
21. januar 2001 - 12:59 #11
Den ser sådan ud nu, men stadig syntax fejl:

sqlString = \"UPDATE links SET (countantal = countantal + 1),(countrate = countrate + \"& rating &\") WHERE link_id = \"& linkformid &\"\"

I kan evt. gå ind og se selv på:

http://213.237.20.47/sim/

under Services og Links
Avatar billede kragekjaer Praktikant
21. januar 2001 - 13:37 #12
Nu virker det! Kanon. Tak. Jeg har lige et spørgsmål til, som jeg opretter. Jeg er lidt ny i dette her.
Avatar billede kragekjaer Praktikant
21. januar 2001 - 13:38 #13
JEg fjernede parenterserne.
Avatar billede erikjacobsen Ekspert
21. januar 2001 - 13:42 #14
Hvilket var det jeg skrev til dig kl. 12:49:12  - *gg*
Avatar billede mesterlars Nybegynder
21. januar 2001 - 13:45 #15
ups
Avatar billede kragekjaer Praktikant
21. januar 2001 - 14:04 #16
erikjakobsen, jeg kunne ikke give dig point, da du kun havde givet en kommentar, men det vr faktisk det der gjorde at det virkede
Avatar billede erikjacobsen Ekspert
21. januar 2001 - 14:17 #17
nemlig ;-) Nej, nej, jeg havde ikke givet noget svar, jeg ville bare
hjælpe.
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