webForumDet fria alternativet

användarnamn mot användarID

25 svar · 978 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

Jag har funktionen där man skickar ett sms med webbis04 present användarnamn, användarnamnet ska bytas mot användarID och uppdatera databasen, men tjänsten fungerar inte och jag hittar inte felet

If instr(sms,"Webbis04 present ") <> "" Then
sms = Replace(sms,"Webbis04 present ","")
End If

objConn.Execute("update tblUsers set vipTillDatum=vipTillDatum+objConn.Execute("update tblUsers set vip=1, vipTillDatum = ADDDATE(CURDATE(), INTERVAL 30 DAY) WHERE mobil = "& nr &"") WHERE username = '"&sms&"'")

Felmeddelandet är

Microsoft VBScript compilation error '800a03ee' 

Expected ')' 

/sms-present.asp, line 32 

objConn.Execute("update tblUsers set vipTillDatum=vipTillDatum+objConn.Execute("update tblUsers set vip=1, vipTillDatum = ADDDATE(CURDATE(), INTERVAL 30 DAY) WHERE mobil = "& nr &"") WHERE username = '"&sms&"'")

Rad 32 är denna rad

WebbisNetMedlem sedan feb. 20032 027 inlägg
#2

Nån som ser felet?

J.N.Medlem sedan apr. 20031 660 inlägg
#3

HEJ!

Vad blir resultatet av din inbäddade update? Jag gissar att du ska addera något, eftersom det står ett +. Men, en UPDATE ger ju inget tillbaka, hur hänger det ihop?

Fungerar din sql uppdelad?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#4

jag ska uppdatera en kolumn med ett datum 30 dagar framåt och en 1-a i en annan kolumn till rätt användare, A ger B en present, presenten ska inte gå efter A-s mobilnummer utan efter B-s användarnamn

J.N.Medlem sedan apr. 20031 660 inlägg
#5

HEJ!

Så "...vipTillDatum=vipTillDatum+objConn.Execute(..." ska inte bli en addition?

Då använder du + för konkatenering, och borde ha ett + till i slutet?

Det känns som att detta är lite viktigt, borde fungerat tidigare, eftersom det kostar pengar?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#6

Kostar bara pengar för användaren när det funkar, inte så länge jag får felmeddelanden

Frågan är bara hur man ska skriva för att få det att funka. Letar man upp rätt användare med mobilnumret är det lätt, men här ska ju inte presenten till den som har numret utan till användarnamnet som anges

WebbisNetMedlem sedan feb. 20032 027 inlägg
#7

testar med
set test=objConn.Execute("update tblUsers set vipTillDatum=vipTillDatum+ADDDATE(CURDATE(), INTERVAL 30 DAY) WHERE username = '"&sms&"'")
response.write test
response.end

och får
Response object error 'ASP 0185 : 8002000e'

Missing Default Property

/sms-present.asp, line 0

A default property was not found for the object.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#8

Hur löser man denna knepiga fråga?

voigtann1Medlem sedan juni 20019 519 inlägg
#9

Sökte på felet du får: http://www.aspfaq.com/show.asp?id=2384

Prova utan response.write för objektet test... det är väl SQL frågan du vill skriva ut..

först felet:
http://www.aspfaq.com/show.asp?id=2480

WebbisNetMedlem sedan feb. 20032 027 inlägg
#10

men kan nån se felet i orginalfrågan, allt ser ju rätt ut tycker jag iaf....inga parenteser saknas ju

If instr(sms,"Webbis04 present ") <> "" Then
sms = Replace(sms,"Webbis04 present ","")
End If

objConn.Execute("update tblUsers set vipTillDatum=vipTillDatum+objConn.Execute("update tblUsers set vip=1, vipTillDatum = ADDDATE(CURDATE(), INTERVAL 30 DAY) WHERE mobil = "& nr &"") WHERE username = '"&sms&"'")
LarsGMedlem sedan dec. 200012 464 inlägg
#11

Du kan inte göra på det sättet. Beskriv tabellen, ge exempel på datainnehåll och det resulttat du vill uppnå.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#12

Tabellen innehåller bland annat userID , username, vipTillDatum, mobil och vip

vipTillDatum innehåller datumet tills VIP tar slut och vip är 1 eller 0, 1 är vip-status, 0 är det inte, mobil är kolumnen för mobilnumret som ska identifiera användaren när sms-et skickas in
När man skickar ett vanligt sms så identifieras användaren av mobilnumret, tabellen uppdateras och det är klart.

Här ska en som har mobilnummer inlagt kunna ge vip till en annan person än sig själv, då är det användarnamnet på den personen som databasen ska uppdateras för

A ger B vip genom att skriva i sms webbis04 present B , mobilnumret står på A men tabellen ska uppdateras för B

emissionMedlem sedan dec. 19996 721 inlägg
#13

WebbisNet skrev:

men kan nån se felet i orginalfrågan, allt ser ju rätt ut tycker jag iaf....inga parenteser saknas ju

Vad gör objConn.Execute mitt inne i SQL-frågan?!

Borde det inte räcka med

objConn.Execute("update tblUsers set vip=1, vipTillDatum = ADDDATE(CURDATE(), INTERVAL 30 DAY) WHERE username = '"&replace(sms,"'","''")&"'")

eller ännu hellre

objConn.Execute("update tblUsers set vip=1, vipTillDatum = ADDDATE(GREATEST(COALESCE(vipTillDatum,CURDATE()),CURDATE()), INTERVAL 30 DAY) WHERE username = '"&replace(sms,"'","''")&"'")

Dock bör du kanske först kontrollera om det verkligen finns en användare med det angivna namnet, och om inte ge tiden till den som köpte i stället.

LarsGMedlem sedan dec. 200012 464 inlägg
#14

Skall den som ger vip åt någon annan också få sin egen vip förlängd?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#15

ne, bara den som ska få vip ska få det förlängt....den som ger presenten ska inte beröras

WebbisNetMedlem sedan feb. 20032 027 inlägg
#16

jag får bara
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]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

/present.asp, line 9

Hela koden
Rad 9 fetmarkerad

<!-- #include virtual="/include/dbconn.asp" -->

<%
nr = request("nr")
sms = request("sms")
'tariff = request("tariff")

SET objConn = Connect()
[B]'If instr(sms,"Webbis04 present ") <> "" Then[/B]
'sms = Replace(sms,"Webbis04 present ","")
'End If

objConn.Execute("update tblUsers set vip=1, vipTillDatum = ADDDATE(GREATEST(COALESCE(vipTillDatum,CURDATE()),CURDATE())  , INTERVAL 30 DAY) WHERE username = '"&replace(sms,"'","''")&"'")

'set ID=objConn.Execute("SELECT tblUsers.userID, tblUsers.username FROM tblUsers where username="&sms")
'varGBDate = Date()
'varGBTime = Time()
'vartoUser=ID("userID")
'gbMessage="Du har fått 1 månads  VIP i present av en användare"
'addPost = "INSERT INTO tblUsers_guestbook"
'	addPost = addPost & "([fromUser],[toUser],[gbMessage],[gbDate],[gbTime],[gbRead]) "
'	addPost = addPost & "VALUES(1,'"& vartoUser &"','"& varMessage &"',#"& varGBDate &"#,'"& varGBTime &"',true)"
'objConn.Execute(addPost)%>
WebbisNetMedlem sedan feb. 20032 027 inlägg
#17

och det finns ALLTID en användare eftersom när man klickar på länken för att ge presenten så står personens namn där.....eftersom länken finns på den personens sida :-)

Peter SMedlem sedan dec. 20025 483 inlägg
#18

Meddelandet säger ju att det är fel i SQL:en. Skriv ut den och bifoga.

Dessutom returnerar instr() 0 om delsträngen ej hittas i söksträngen. Dock behöver du ju inte använda den, utan det räcker med 'sms = ...'.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#19

får samma fel även om jag skriver ut den

emissionMedlem sedan dec. 19996 721 inlägg
#20

Det är klart att du får. Skriv ut den och bifoga här.

138 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)