19. september 2001 - 17:36Der er
21 kommentarer og 1 løsning
Dumme tabler og if-sætninger! Hvordan skal dette laves?
Jeg har følgende kode:
Dim Conn Set Conn = CreateObject(\"ADODB.Connection\") Conn.Provider = \"Microsoft.Jet.OLEDB.4.0; ; Data Source=\" & Server.MapPath(\"db/users.mdb\") Conn.Open
Dim Record,strSQL
Set Record = Server.CreateObject(\"ADODB.RecordSet\") strSQL = \"Select * From users\" Record.Open strSQL, Conn
SQL = \"Select * From wars\"
If Record(\"rank\")=\"Member/Wararranger\" then Set Record = Conn.Execute(SQL)
if Record(\"set\")=\"1\" then Response.Write \"hej\"
elseif Record(\"set\")=\"0\" then Response.Write \"nej\"
end if
end if
Record.Close Conn.close Set Conn = Nothing
Jeg forsøge først at opfylde den betingelse at rækken \"rank\" i tablen \"users\" skal være lig med Mamber/wararranger. For dem som opfylder denne betingelse, skal den så se på værdien i rækken \"set\" i tablen \"wars\". Eftersom den er enten 1 eller 0 skal den skrive hej eller nej
Først og fremmest tror jeg ikke at jeg helt har forstået dit spørgsmål. Men jeg kan godt forklare dig hvad det er du gør lige nu...
1. Du vælger alle felter (kolonner), i alle poster (rækker) fra Users 2. Du laver en if på feltet \"rank\", men kun på den første post (række) 3. Du kører kun dit 2. SQL statement hvis \"rank\" på første post (række) er lig \"Member/Wararranger\". 4. Du kører derefter en if/elseif på feltet (kolonnen) \"set\", som altså kun har indhold fra tabellen \"Wars\", hvis \"rank\" på første post (række) var \"Member/Wararranger\"
Hvis du læser ovenstående, kan du måske selv se fejlen, for jeg tror ikke det er den måde du ønsker det skal køre. Hvis ikke, prøv at uddybe dit spørgsmål
okay....Efter hva du har skrevet kan jeg godt se der er en fejl....
2. Du laver en if på feltet \"rank\", men kun på den første post (række)
Den her blir kørt lige nåh man logger ind...Den skal så finde den post i feltet \"rank\" og hvis det er ham der har Member/Wararranger i \"rank\" skal den gå videre.....
Så det gik vidst lige op for mig at der mangler noget i dokumentet, som søger i ham som logger ind\'s post i rank
Dim Conn Set Conn = CreateObject(\"ADODB.Connection\") Conn.Provider = \"Microsoft.Jet.OLEDB.4.0; ; Data Source=\" & Server.MapPath(\"db/users.mdb\") Conn.Open
Dim Record,strSQL
Set Record = Server.CreateObject(\"ADODB.RecordSet\") strSQL = \"Select * From users Where username = Session(\"username-session\")\" Record.Open strSQL, Conn
SQL = \"Select * From wars\"
If Record(\"rank\") = \"Member/Wararranger\" then Set Record = Conn.Execute(SQL)
if Record(\"[set]\") = \"1\" then Response.Write \"hej\"
if Record(\"[set]\") = \"1\" then Response.Write \"hej\"
else Response.Write \"nej\"
end if
til:
if Record(\"set\") = \"1\" then Response.Write \"hej\" else Response.Write \"nej\" end if
Når du skriver if og then på samme linie, kan du ikke lave en else nedenunder
P.S. Efter i går er du blevet lidt overforsigtig med reserverede ord; set skal kun bære [set] når den bruges i SQL statements. I ovenstående eksempel refererer du til feltet set i et recirdset inde i ASP og feltet har faktisk navnet set, ikke [set] :-)
Dim Conn Set Conn = CreateObject(\"ADODB.Connection\") Conn.Provider = \"Microsoft.Jet.OLEDB.4.0; ; Data Source=\" & Server.MapPath(\"db/users.mdb\") Conn.Open
Dim Record,strSQL
Set Record = Server.CreateObject(\"ADODB.RecordSet\") strSQL = \"Select * From users Where username = \'\" & Session(\"username-session\") & \"\'\" Record.Open strSQL, Conn
SQL = \"Select * From wars\"
If Record(\"rank\") = \"Member/Wararranger\" then Set Record = Conn.Execute(SQL)
if Record(\"[set]\") = \"1\" then Response.Write \"hej\"
mIRC på min hjemme maskine ja, men lige nu sidder jeg på et hotelværelse i Kbh med min bærbare og der må jeg ikke installere den slags \"snavs\". Hvad med Yahoo chat, vi kunne oprette en privat chat ?
Dim Conn Set Conn = CreateObject(\"ADODB.Connection\") Conn.Provider = \"Microsoft.Jet.OLEDB.4.0; ; Data Source=\" & Server.MapPath(\"db/users.mdb\") Conn.Open
Dim Record,strSQL,SQL
Set Record = Server.CreateObject(\"ADODB.RecordSet\") strSQL = \"Select * From users Where username = \'\" & Session(\"username-session\") & \"\'\" Record.Open strSQL, Conn
SQL = \"Select * From wars\"
If Record(\"rank\") = \"Member/Wararranger\" then Set Record = Conn.Execute(SQL)
if Record(\"[set]\") = \"1\" then Response.Write \"hej\"
end if end if
Record.Close Conn.close Set Conn = Nothing
og fejlen er: ADODB.Recordset error \'800a0cc1\'
Item cannot be found in the collection corresponding to the requested name or ordinal.
Prøv at indsætte flg. lige under Record.Open strSQL, Conn
if Record.EOF then response.write \"Ingen data i Record\" response.end end if
Du bør altid kontrollere for om der faktisk er data i dit recordset, ellers vil du få den fejl. Et tomt recordset har både .BOF og .EOF = True, men det er normalt nok at kontrollere for .EOF (End Of File)
Jeg har fået det til at virke =) Den skal se sådan her ud!
Dim Conn Set Conn = CreateObject(\"ADODB.Connection\") Conn.Provider = \"Microsoft.Jet.OLEDB.4.0; ; Data Source=\" & Server.MapPath(\"db/users.mdb\") Conn.Open
Dim Record,strSQL,SQL
Set Record = Server.CreateObject(\"ADODB.RecordSet\") strSQL = \"Select * From users Where username = \'\" & Session(\"username-session\") & \"\'\" Record.Open strSQL, Conn
SQL = \"Select * From wars\"
If Record(\"rank\") = \"Member/Wararranger\" then Set Record = Conn.Execute(SQL)
if Record(\"set\") = \"1\" then Response.Write \"hej\"
Bare gå på den her chat...her kommer aldrig nogen..jeg r allerede derinde: http://www.cht.dk/ctchat/
Synes godt om
Ny brugerNybegynder
Din løsning...
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.