"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

asp problem

Tex 29.10.2001 - 19:03 1832 8 Thread rating
Posts

Tex

got r00t?
Avatar
Registered: Aug 2000
Location: salzburg
Posts: 1844
naja, das problem ist nicht ganz einfach zu erklären. hier einfach mal der code:

Code: PHP
<select name="kategorie">
<%
Set conn = Server.CreateObject("ADODB.Connection") 
conn.open "w00308282_eder","",""

Set rs2 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from linkkategorien"

Set rs2 = conn.Execute(sql)

if rs2.Eof then 

else

rs2.MoveFirst

x = request.querystring ("kat")


Do Until rs2.Eof
y = rs2.fields("id")

%>

<option value='<% response.write rs2.Fields("id") %>' <% if x = y then response.write "selected" end if %>><% response.write rs2.Fields("kategorie") %></option>

<%

  rs2.MoveNext
Loop
end if
	
%>
</select>

ich hänge an den link hinten zb ?kat=11 an. und wenn nun das feld rs2.fields("id") auch 11 ist (var y) dann sollte er beim optionsfeld "selected" anhängen. aber er kann die werte einfach nicht vergleichen, obwohl sie genau die selben sind (wenn ich händisch zb if x=11 eingebe, dann gehts. auch if y=11 etc. geht.

ich hoffe irgendwer blickt bei dem code durch und kann mir helfen ;)

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
als erstes würd ich mal den vergleich in eine klammer setzen.

zweitens würd ich mal einfach ein

response.write "x= " & x & vbNewLine
und
response.write "y= " & y & vbNewLine

machen, damit du siehst, was in den zwei variablen wirklich drinnen steht.

weiters ersetze das "select *" durch ein "select id", damit du sicher bist, dass er da die ID heraussucht (ist auch performanter, falls du in dieser query keine anderen werte brauchst).

Tex

got r00t?
Avatar
Registered: Aug 2000
Location: salzburg
Posts: 1844
vergleich in eine klammer geht bei asp imho nicht.

x und y haben die richtigen werte. hab' ich schon getestet.

ich brauche in der query auch das feld kategorie und mehr sind in der db eh nicht vorhanden.

Tex

got r00t?
Avatar
Registered: Aug 2000
Location: salzburg
Posts: 1844
ok, vergleich in klammer geht schon, löst aber das problem nicht

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
wennst mal eine "gscheite" sprache kannst, wirst keine vergleiche ohne klammer mehr machen ;)

dann DIMme mal die variablen fix auf einen typ. weil so scheint die eine int zu werden und die andere str/var -> kannst sie nimmer vergleichen.

im extremen fall musst halt einen cast auf einen typ machen und dann erst vergleichen.

edit: implizite deklaration suckz - hast nie eine ahnung, was das jetzt wirklich für ein typ ist.
"option explicit" rult! :cool: :p

Tex

got r00t?
Avatar
Registered: Aug 2000
Location: salzburg
Posts: 1844
ich weiß eh, dass normalerweise ein vergleich in klammern gehört (java, c, php, javascript etc.) nur ich habe bei sämtlichen asp-tutorials bisher den vergleich immer ohne klammern gesehen.

ps: asp suxx! :D

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
Zitat von Tex
ich weiß eh, dass normalerweise ein vergleich in klammern gehört (java, c, php, javascript etc.) nur ich habe bei sämtlichen asp-tutorials bisher den vergleich immer ohne klammern gesehen.

ps: asp suxx! :D

den fixen DIM schon probiert? (zb beide auf string)

Tex

got r00t?
Avatar
Registered: Aug 2000
Location: salzburg
Posts: 1844
thx, ich hab' jetzt das ganze mit

x = int(request.querystring ("kat"))
y = int(rs2.fields("id"))

in einen integer wert umgewandelt und jetzt funzt es

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
Zitat von Tex
thx, ich hab' jetzt das ganze mit

x = int(request.querystring ("kat"))
y = int(rs2.fields("id"))

in einen integer wert umgewandelt und jetzt funzt es

sag ich ja. :)
*freu*
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz