webForumDet fria alternativet

Nybörjarproblem...

ASP

28 svar · 703 visningar · startad av jacoblo33

Medlem sedan dec. 200317 inlägg
Frågan#1

Har ett litet problem...

dise = RS("dinamn")
response.Write dise

skriver ut "jacob test"

men senare där jag vill ha det,
response.Write "<INPUT id=""dise"" name=""dise"" class=""littleForm"" size=""25"" style=""FLOAT: left"" value =" & dise & ">"

skriver det bara ut "jacob"

Någon som har en anning varför detta händer?

Medlem sedan maj 200010 687 inlägg
#2

Värden med andra tecken i sig än a-z och 0-9 måste ha citattecken kring sig. Enklast är att ta för vana att alltid använda citattecken kring värden. Sen i XHTML ska man alltid ha det.

Så skriv så här:

response.Write "<INPUT id=""dise"" name=""dise"" class=""littleForm"" size=""25"" style=""FLOAT: left"" value=""" & dise & """>"
Medlem sedan dec. 200317 inlägg
#3

Allt för många " för att jag tycka om det :)

Men det fungerar i alla fall

Medlem sedan dec. 200317 inlägg
#4

Denna här då?

SQL = "UPDATE User Set lag = " & lag & "" where ID = " & id & ""

fungerar om jag använder
SQL = "UPDATE User Set lag = 'lagets namn' where ID = " & id & ""

hur lyckas jag få in det så det blir rätt?

Medlem sedan juni 200032 967 inlägg
#5
SQL = "UPDATE User Set lag = '" & lag & "' where ID = " & id

Mvh

Medlem sedan dec. 200317 inlägg
#6

Tack för hjälpen

Medlem sedan maj 200010 687 inlägg
#7

Varför inte skriva så här då?

<INPUT id="dise" name="dise" class="littleForm" size="25" style="FLOAT: left" value="<%=dise%>">
Medlem sedan dec. 200317 inlägg
#8

Jag försöker köra UPDATE med närmare 10 olika saker som ska uppdateras. Fungerade inte så jag började lägga till en och en.
Efter fem - sex styckna slutar det fungerar. Är det vanligt?

SQL = "UPDATE User Set lag = '" & lag & "', pw = '" & losen & "', email = '" & email & "', dinamn = '" & dise & "', icq = '" & icq & "', msn = '" & msn & "' where ID = " & id & ""

När jag la till icq och msn slutade det uppdatera databasen. Inget felmeddelande, men uppdaterar inte (varken för de tidigare som fungerat tidigare eller icq/msn.

Medlem sedan juni 200032 967 inlägg
#9

Inget felmeddelande?
Du råkar inte har on error resume next i koden?

Medlem sedan dec. 200317 inlägg
#10

Var tänkt den skulle vara avstängd :(

Fick det att fungera till slut, men har nästa problem

id = request.QueryString("id")
dise = request("dise")
lag = request("lag")
losen = request("losen")
div = request("div")
age = request("age")
stad = request("stad")
msn = request("msn")
icq = request("icq")
email = request("email")

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("di.mdb")&";"

SQL = "UPDATE User Set lag = '" & lag & "', pw = '" & losen & "', email = '" & email & "', dinamn = '" & dise & "', msn = '" & msn & "', stad = '" & stad & "', ålder = '" & age & "', division = '" & div & "', icq = '" & icq & "' where ID = " & id & ""
Set RS = Con.Execute(SQL)

Fungerar bra när det gäller lag med ID 1
För alla andra fungerar det inte.

Syntax error (missing operator) in query expression ''Oscy's Jokers', pw = 'miffe', email = '', dinamn = 'kickazz', msn = 'kickazzoscy@hotmail.com', stad = 'Malmö', ålder = '17', division = 'V.253', icq = '' where ID = 49'.
/update2.asp, line 26

Medlem sedan juni 200032 967 inlägg
#11

Det är för att du har en apostrof i namnet. Apostrofer avgränsar ju strängar i SQL, så du måste escape:a alla strängar.

function SQLFix(strText)
     SQLFix = Replace(strText, "'", "''")
End function

...
lag = SQLFix(request("lag"))
...

Mvh

Medlem sedan dec. 200317 inlägg
#12

Men varför fungerar det felfritt för id=1 ?

Medlem sedan juni 200032 967 inlägg
#13

För att laget med ID 1 inte hade någon apostrof i lagnamnet?

Medlem sedan dec. 200317 inlägg
#14

Skumt. Alla lagnamnen är utan apostrof. Men funktionen du gav mig fixar det problemet i alla fall.

Nu får jag däremot ett annat fel
Data type mismatch in criteria expression.
/update2.asp, line 32

Medlem sedan juni 200032 967 inlägg
#15

jacoblo33 skrev:

Skumt. Alla lagnamnen är utan apostrof. Men funktionen du gav mig fixar det problemet i alla fall.

Nej, alla är inte utan apostrof. Inte det som visas i felmeddelandet ovan, Oscy's Jokers.

Nu får jag däremot ett annat fel
Data type mismatch in criteria expression.
/update2.asp, line 32

Då gissar jag på att du har något fält i din tabell, som är av taltyp, och du trots det har apostrofer runt värdet i SQL-frågan. Bort med dem då.

mvh

Medlem sedan dec. 200317 inlägg
#16

Ja, du syftar på ' den i mitten av hans lagnman.

Jag har två fält som är siffror (ålder och icq), men som sagt, koden fungerar bra för id 1 där jag använder båda två...

Medlem sedan juni 200032 967 inlägg
#17

jacoblo33 skrev:

Jag har två fält som är siffror (ålder och icq), men som sagt, koden fungerar bra för id 1 där jag använder båda två...

Koden borde inte fungera bra för id 1. Ta bort apostroferna runt fältvärdena för ålder och icq. Om fälttypen är tal då vill säga.

Mvh

Medlem sedan dec. 200317 inlägg
#18

om jag skriver in ålder = 20 i stället fungerar det, men i själva koden, hur gör jag det lättast?

ålder = '" & age & "'

kan inte plocka bort dem för då blir det ett annat fel meddelande

Medlem sedan juni 200032 967 inlägg
#19
ålder = " & age & "

Vad för annat felmeddelande?

Medlem sedan dec. 200317 inlägg
#20

Fungerar. Vet inte vad jag babblar om

Väldigt tacksam för all hjälp jag får här inne

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)