Avatar billede cool_code Nybegynder
16. april 2002 - 22:43 Der er 19 kommentarer og
3 løsninger

Mærkelig fejl i IE og Netscape

Nu rabler det for den gode cool_code. Jeg er røget ind i et MEGET underligt problem.

Jeg har lavet en kode-linie som går ind og opdaterer en post i en MySQL database. Det er der nu ikke så meget hurlumhej i. Når jeg afvikler siden i OPERA-browseren (version 6.01 - Build 1041) så afvikles min SQL-sætning uden problemer. Den ændrer i databasen lige efter hensigten - UDEN PROBLEMER.

Men Men Men ...........

Når den samme siden afprøves i IE (version 6.0.2600.0000) og Netscape (version 6.2.1) så giver det en SQL-Syntax error. ?!?!?!?!?!?!?!?!?!

Det forstår jeg ikke. Når jeg afprøver min SQL-sætning i phpMyAdmin er der heller ingen problemer. Dvs min SQL burde jo være OK (phpMyAdmin har accepteret den og OPERA også).

SQL-Linien ser således ud:
UPDATE vagt SET tildeling='Ja' WHERE id=1 AND vagt= 10

Fejlmeddelelsen ser således ud:
[TCX][MyODBC]You have an error in your SQL syntax near ' 10' at line 1

Jeg bruger Javascript som scriptsprog, hvis det kan hjælpe.........

ER DER NOGEN DER KAN HJÆLPE MIG ?!?!?!?!?!?!?!

16. april 2002 - 22:47 #1
UPDATE vagt SET tildeling='Ja' WHERE id=1 AND vagt=10 (måske)

Men det burde da ikek have noget at gører med browseren.

Javascript som scrip sprog?!
Javascript kan da hverken opdatere en databse eller det modsatte?!
Avatar billede erikjacobsen Ekspert
16. april 2002 - 22:48 #2
Hvis du vise os noget kode. Det er ikke din sql-sætning der er gal. Det er noget med
de data du putter ind i den.
Avatar billede whatever Nybegynder
16. april 2002 - 22:49 #3
xzxzx-kan-ikke-logge > Du kan godt bruge Javascript som server-sprog (Jscript).
Avatar billede cool_code Nybegynder
16. april 2002 - 23:02 #4
Sådan ser min sætning ud og hvad jeg kommer i den.

Først beder jeg om nogle informationer (2 Requests):
id = Request("personid"); // Integer f. eks 10
vagt = Request("vagtid"); // Integer f. eks 25

sql = "UPDATE vagt SET tildeling='Ja' WHERE id=" + id + " AND vagt=" + vagt;

Så kommer jeg den ind i en funktion jeg har lavet som eksekverer min SQL sætning.

forbindelse.Execute(sql); // det er en update, dvs der skal ikke samles noget op i et RecordSet

Dvs det er tal jeg sætter sammen med en string, men (ihvertfald i Java) så er en Integer implicit konverteret til en string hvis man sætter den sammen med en anden string.

Blev det bedre??????
Avatar billede dudal Nybegynder
16. april 2002 - 23:02 #5
Kan også være et cache problem???

Opera er ret god til ikke at cache hvor IE og NS har det med at cache selvom man hard refresher.

Det er lige min første tanke. :-)

/Jesper
Avatar billede cool_code Nybegynder
16. april 2002 - 23:04 #6
Hvordan afprøver jeg det med cachen???? Hvad skal jeg ændre i?
Avatar billede erikjacobsen Ekspert
16. april 2002 - 23:05 #7
Godt nok. Må vi se formen, hvor dine felter kommer fra?
Avatar billede dudal Nybegynder
16. april 2002 - 23:07 #8
Hmm. Normalt kan det være nok at lave en nu url med et qs.
Eks.
fil.asp?uid=e4234234232

Men hvis du get'er din form til siden, så burde det jo være nok at ændre på nogle tal.

Alternativt kan du prøve at quote dine strings i din update.

sql = "UPDATE vagt SET tildeling='Ja' WHERE id='" + id + "' AND vagt='" + vagt +"'";
Avatar billede eagleeye Praktikant
16. april 2002 - 23:11 #9
Husk ; tilsidst i SQL strengen, jeg har nogle gange set MySQL brokke sig hvis den manglede:

sql = "UPDATE vagt SET tildeling='Ja' WHERE id=" + id + " AND vagt=" + vagt + ";";
Avatar billede cool_code Nybegynder
16. april 2002 - 23:20 #10
De relevante data kan komme 2 steder fra:
1) fra en SELECTBOKS (en side 'før' denne)
2) fra et INPUT type="hidden"-felt (samme side - formen kalder samme side igen)

1) (denne er fra den forrige side)
<select name="person">
<%
while (!resultat.EOF) { // resultat er en almindelig SELECT statement
%>
  <option name="person" value=<%=resultat.fields("personid") %>>
  <%=resultat.fields("personid") %>&nbsp;<%=resultat.fields("navn") %></option>
<%
resultat.moveNext();
} %>
</select>


eller

2) (følgende side)
Når en person er valgt bliver hans id automatisk lagt ind i et 'hidden' felt i formen på denne side:
<input type="hidden" name="person" value=<%=id %>>

eagleeye: Det har jeg prøvet.
dudal: De tal som er i min DB ER integers og de skal derfor IKKE i quote.
Avatar billede dudal Nybegynder
16. april 2002 - 23:23 #11
Nope det kan du have ret i, men prøv alligevel. Jeg har tidligere haft uderlige oplevelser med asp og mysql og plejer derfor at prøve alle muligheder af. :-)

/Jesper
Avatar billede cool_code Nybegynder
16. april 2002 - 23:23 #12
Jeg prøver lige....:-)
Avatar billede erikjacobsen Ekspert
16. april 2002 - 23:25 #13
Vis os venligst en form - det hele. Helst som det ser ud i HTML.

I Mysql må man gerne have '...' omkring tal. Men det gør ingen forskel
her.
Avatar billede cool_code Nybegynder
16. april 2002 - 23:35 #14
erik, du har lige inspireret mig til at finde løsningen selv.

Problemet var, at jeg i min selectBOKS (inde i <option>) ikke havde sat en value......Det kan Explorer ikke finde ud af (heller ikke netscape). Kun OPERA kunne UDEN value i option.

MySQL brokkede sig heller ikke over quotes, så den har jeg også beholdt her.

erik: lav lige et svar......

Jeg giver følgende point:
Erik: 15p
dudal: 5p

Er det OK

MANGE TAK FOR HJÆLPEN

/cool_code
Avatar billede erikjacobsen Ekspert
16. april 2002 - 23:36 #15
Ja ja da. Det er netop en af de ting man vil kunne opdage ved at se den rigtige kildetekst....:)
Avatar billede cool_code Nybegynder
16. april 2002 - 23:38 #16
haha ja, det var ikke fordi jeg ikke ville vise den. Det var jo kun en form, men da jeg kiggede ORDENTLIGT efter undrede jeg mig selv over at de manglede.......Det har drillet mig i 3 dage nu......Men det råber jeeg ikke højt om :-)
Avatar billede cool_code Nybegynder
16. april 2002 - 23:42 #17
Undskyld, eagleeye fortjente egentlig den med quotes.

I får 10p hver............

Håber det er OK
Avatar billede dudal Nybegynder
16. april 2002 - 23:42 #18
Bare smid det på erik. :-)
Avatar billede cool_code Nybegynder
16. april 2002 - 23:43 #19
Dudal, kan du ikke give et svar.......?
Avatar billede cool_code Nybegynder
16. april 2002 - 23:45 #20
Skynd dig dudal, jeg vil ind i seng nu og sove :-)
Avatar billede dudal Nybegynder
16. april 2002 - 23:47 #21
Okei så :-)
Avatar billede cool_code Nybegynder
16. april 2002 - 23:47 #22
SÅDAN SKAL DET VÆRE....:-)
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