webForumDet fria alternativet

ämne? kommer inte på nått :D

ASP

13 svar · 191 visningar · startad av Cactuz

Medlem sedan okt. 2001670 inlägg
Frågan#1

vad är det för fel här?

<% 
Set db = Server.CreateObject("ADODB.Connection")
Set RecSet = Server.CreateObject("ADODB.Recordset")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("db.mdb")
namn = session("username")
addera = "SELECT * From stat WHERE username = '" & namn & "'"
RecSet.Open addera,db,1,2
%>

                  <%
				  inloggningar = recset("inloggningar")
				  skickade_mess = recset("skickade_mess")
				  gb = recset("gb")

				  				  
				  inloggningar = inloggningar * 0.10
				  skickade_mess = skickade_mess * 0.50
				  gb = gb * 0.70

				  
				  status = inloggningar + skickade_mess + gb
				 
				  %>

felmeddelande:

Feltyp:
ADODB.Field (0x800A0BCD)
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.
/cactuz/stat.asp, line 18
Medlem sedan mars 20002 836 inlägg
#2

du får tillbaka ett tomt recordset.

du måste först göra en koll om recordsetet är eof eller inte innan du börjar använda de olika posterna i recordsetet.

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

Medlem sedan okt. 2001670 inlägg
#3

hur kollar man det då o vad innebär det?

Medlem sedan dec. 200012 464 inlägg
#4
RecSet.Open addera,db,1,2
%>
<%
[b] if not recset.eof then 'det finns data[/b]
inloggningar = recset("inloggningar")
skickade_mess = recset("skickade_mess")
gb = recset("gb")

inloggningar = inloggningar * 0.10
skickade_mess = skickade_mess * 0.50
gb = gb * 0.70
status = inloggningar + skickade_mess + gb
[b]
else 
'det fanns inga poster
end if
[/b]
%>

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001670 inlägg
#5

nu funkar inte scriptet längre :(

Medlem sedan dec. 200012 464 inlägg
#6

Hur då inte fungerar?

Innehåller namn något vettigt värde?

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001670 inlägg
#7

ja.. men inloggningar o det blir inget... jag "visar" det så här:

inloggningar: <%=inloggningar%>
<br>
Skickade mess: <%=skickade_mess%>
<br>
Gästboks inlägg: <%=gb%>
<br>

Totalt: <%=status%>

får inte upp nått efter inloggningar: o d.. det är helt tomt

Medlem sedan dec. 200012 464 inlägg
#8

Ja, då får du lägga till lite lämpliga tilldelningar i else delen. T.ex.

RecSet.Open addera,db,1,2
%>
<%
if not recset.eof then 'det finns data
inloggningar = recset("inloggningar")
skickade_mess = recset("skickade_mess")
gb = recset("gb")

inloggningar = inloggningar * 0.10
skickade_mess = skickade_mess * 0.50
gb = gb * 0.70
status = inloggningar + skickade_mess + gb

else 
 inloggningar = 0
skickade_mess = 0
gb = 0
status = 0
end if

%>

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001670 inlägg
#9

nu får man 0 på allt fast jag egentligen ska få 0.17 på inloggningar och 0 på resten

Medlem sedan dec. 200012 464 inlägg
#10

Nu förstår jag inte. Om det inte finns något data i tabellen för den användaren hur skulle det då bliu 0.17?

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001670 inlägg
#11

det är ju det som scriptet fixar.. i databasen står det 17

Medlem sedan dec. 200012 464 inlägg
#12

I så fall är det något fel med variabeln namn, t.ex. att den inte innehåller ett vettigt värde.

Hur ser sql-satsen ut efter det att du har byggt ihop sträng addera?

addera = "SELECT * From stat WHERE username = '" & namn & "'"
response.write addera

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001670 inlägg
#13

vänta lite.. det kan stämma med att namn inte har ett vettigt värde...

Medlem sedan okt. 2001670 inlägg
#14

nu funkar det :)

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)