16. april 2002 - 22:43Der 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.........
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.
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") %> <%=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.
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. :-)
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.
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 :-)
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.