19. marts 2006 - 15:55Der er
14 kommentarer og 1 løsning
Tekststreng ASP/MySQL
Jeg hiver nogle data fra MySQL-database (tekststrenge), og de har flg. værdier:
userID username name created lastseen
Disse værdier skal bruges til udtræk:
vView = newRS("chooseview")
SQL = "SELECT .... FROM backendusersitg ORDER BY " & vView
Men jeg får flg. fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Jeg laver et tjek:
DEBUG: SELECT ........... FROM MinTabel ORDER BY
- og så kommer der ikke mere. Variablen er tilsyneladende tom. Hvordan skal SQL-sætningen se ud? & vView er tilsyneladende ikke korrekt.
For at teste det, har jeg lagt en ekstra linie ind:
SQL = "SELECT chooseview, xChooseorder FROM MinTabel ORDER BY " & vView Response.Write "DEBUG: " & SQL & "<br>" Set RS = Conn.Execute(SQL)
Og så ser det således ud:
DEBUG: SELECT ...... chooseview, xChooseorder FROM MinTabel ORDER BY
[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Er du sikker på den ikke er tom? Du skriver jo din sql ud hvor den tilsyneladende er tom Prøv lige debugge her: --- .. vViews = newRS("chooseview") response.write "vViews = " & vViews If vViews = 1 Then vView = "userID" .. ---
Jo, nu er den selvfølgelig tom, fordi jeg har tømt DB'en, ville starte forfra på en frisk.
Skal der noget IF *.EOF Then ind? Jeg vil mene, at der er taget højde for, at der ikke er noget i DB i min select-box:
<select size="1" name="chooseview" class="input1"> <option selected>Vælg</option><%'<-- Denne er valgt, medmindre qChooseview har en værdi? %> <option value="1"<% If qChooseview = 1 Then %> selected<% End If %>>ID</option> <option value="2"<% If qChooseview = 2 Then %> selected<% End If %>>Brugernavn</option> <option value="3"<% If qChooseview = 3 Then %> selected<% End If %>>Navn</option> <option value="4"<% If qChooseview = 4 Then %> selected<% End If %>>Oprettet</option> <option value="5"<% If qChooseview = 5 Then %> selected<% End If %>>Sidst set</option> </select>
tja, kan ikke lige se hvor du har den select box men du kan vel bare klare det ved ---- if vView = "" then SQL = "SELECT chooseview, xChooseorder FROM MinTabel" else SQL = "SELECT chooseview, xChooseorder FROM MinTabel ORDER BY " & vView end if
Det er fordi brugeren kan vælge hvad listen skal sorteres efter: Navn, brugernavn ... og om det skal være stigende eller faldende. Der er jo 2 selectbokse.
ahh ok, men har du så et tjek på at brugeren ikke lader være med at vælge noget? Det nemmeste er nok bare at sige at hvis brugeren ikke har valgt noget så sorteres der på fx brugernavn
Jep, men den "option" har ingen "value", så når du gemmer oplysningen i databasen bliver den tom Du kunne jo så vælge at gøre sådan her fx <option value="2" selected>Vælg</option> Hvis der intet vælges, ja så vælges så brugernavn
Der vil (skal) så bare stå "Vælg", når brugeren kommer ind på siden første gang, indtil første gang der foretages et valg.
Næste gang brugeren kommer ind på siden, vil værdien hives fra DB, og her vil brugerens valg så stå i select-boksen.
Jeg prøver at undgå cookies, da de har det med at blive slettet eller beskadiget, eller også accepteres cookies ikke f brugerens browser. På denne måde omgår man alt det bøvl det kan give :o)
Ok, idet jeg har skrevet dette her, forstår jeg hvad du mener. Jeg tror jeg sætter value="1", så det er userID, der bliver listet pr. default. Tak for hintet :o)
Men der er stadig det oprindelige problem, som jeg håber du kan hjælpe med senere :o)
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.