Jag har en databas med 3 kolumner som innehåller ID och ord på Japanska och på Engelska.
Meningen är att man ska se det japanska ordet och så kommer det upp ett fält till höger om den där man ska skriva in den engelska ordet som motsvarar det japanska och sen ska man kolla hur många man skrivit rätt.
För att göra "Testen" så läser jag in ID och sätter den på text rutans NAME tag i forumläret och det funkar fint.. Jag får upp en sidan som den ska. Alla text fält med unika namn (ID)
Men jag vet inte hur jag ska kolla värdet på alla text-rutor i formuläret med ID't och kolla om det engelska ordet är rätt skrivet.
Nån som har en bra ide?
Jag gissar att jag måste göra en loop som kollar ID't från databasen mot alla ID värden i formuläret och sen jämnföra engelska ordet, men jag lyckas inte få det att funka!
Det kanske är enklare att förstå vad jag menar om ni kollar på det jag byggt fram till nu! Det är ganska provisoriskt och det händer ju inget när man "Check'ar" orden.
Men tanken är att man ska jämnföra alla värden i text rutorna mot rätt ID i databasen och sen verifiera om ordet är rättstavat..
For Each strForm In Request.Form
strSQL = "SELECT COUNT(*) FROM tabell WHERE (ID = " & strForm & " AND English = '" & Request.Form(strForm) & "')"
Set objRS = objConn.Execute(strSQL)
intTotal = intTotal + objRS(0)
Next
Set objRS = Nothing
Response.Write(intTotal & " rätt svar.")
Jag skrev in det så här men jag får på raden där jag sätter Recordset'et. Felmedelandet säger, Microsoft JET Database Engine (0x80040E10) Det har inte angetts något värde för en eller flera nödvändiga parametrar.
if Request.QueryString("action") = "checkwords" then
Set objConn = server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb")
objConn.Open strConn
For Each strForm In Request.Form
strSQL = "SELECT COUNT(*) FROM wordgame WHERE (ID = " & strForm & " AND English = '" & Request.Form(strForm) & "')"
Set objRS = objConn.Execute(strSQL)
intTotal = intTotal + objRS(0)
Next
Set objRS = Nothing
Response.Write(intTotal & " rätt svar.")
objConn.Close
Set objConn = Nothing
end if
COUNT(*) returnerar antalet poster som matchar villkoren i WHERE-satsen.
Om du skriver COUNT(*) AS något så ger du den skapade kolumnen ett alias att referera till i ASP-koden, objRS("något"). Om du inte gör det, så kan du referera till fältet genom att ange dess ordningsnummer i recordsetet, dvs 0. Ordningsnummer och index börjar i stort sett alltid på 0.