Avatar billede malte Nybegynder
20. januar 2002 - 18:58 Der er 5 kommentarer og
2 løsninger

Tomt datafelt?

Hvad gør jeg jeg er ved at lave et random citatscript ligessom her på experten. Men hvis folk ikke udfylder feltet får jeg fejl på siderne??

Her er koden:
<html><body><p>
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath(\"users.mdb\")
Conn.Open DSN


set rs = Conn.execute(\"select * from users order by id desc\")


Randomize
valg = Int(Rnd * rs(\"id\"))
valg = valg + 1

strSQL = \"Select * from users where id = \"& valg &\"\"
set rs = conn.execute(strsql)
If rs.bof or rs.eof then
minside \"citat.asp\"
response.redirect minside
Else
Response.write rs(\"citat\")
navn = rs(\"username\")
End If %><br>
<a href=\"http://www.counselor.dk/dev/myDeV/users.asp?UserName=<% =navn %>\"> <% =navn %> </a>
</p>
</body></html>
Avatar billede malte Nybegynder
20. januar 2002 - 19:00 #1
Nu ser det ud til at virke igen????
Er det muligt at lave noget mere stabilt!!!
Avatar billede coltau Juniormester
20. januar 2002 - 19:19 #2
Der er kun den hårde måde. Alt indtastning skal kontrolleres - specielt hvis det skal anvendes i en Sql-sætning.

Jeg kan ikke gennemskue nøjagtigt hvordan din kode skal virke. (Hvor kommer brugerens felt ind. ?) - men ovenstående kode vil fejle hvis tabellen users er tom. !
Avatar billede malte Nybegynder
20. januar 2002 - 19:23 #3
databasen hedder users
tabellen hedder users
felterne hedder id, username, citat

ID og Username står der i forvejen men citatet er en ny tilføjelse og det er ikke alle medlemmer der har skrevet noget endnu.

Kan du lave koden så jeg kan sætte den ind som en include?
Avatar billede coltau Juniormester
20. januar 2002 - 20:14 #4
Skal ovenstående blot vise et tilfældigt citat. ?

Skal den vise et citat hvergang. ? (Eller sagt på en anden måde: Hvis man får fat i et tomt citat skal man så blive ved til man finder et. ?)
Avatar billede malte Nybegynder
20. januar 2002 - 20:17 #5
hvis det er et tomt felt skal den springe over til et andet tilfældigt der er fyldt
Avatar billede freedom Nybegynder
20. januar 2002 - 21:02 #6
når du skal gemme det i databasen så brug dette javascript I HTML:
<SCRIPT LANGUAGE=\"JavaScript\">
function tjek(form) {
    Ctrl1 = form.dit_input_felt_navn;
   
    if (Ctrl1.value.length == \"\") {
        alert (\"Du mangler at skrive noget!!!!\");
        return (false);
    }    
    return (true);
}
</SCRIPT>
Og i din form:
<FORM method=\"post\" onSubmit=\" return tjek(this)\" action=\"din_asp_fil_hvor_den_indsætter\">
<input type=\"text\" name=\"dit_input_felt_navn\" id=\"t1\">
håber du forstår!
Eller du kan :
If rs(\"felten\") = \"\" Then
rs.MoveNext
else
End if
Avatar billede coltau Juniormester
20. januar 2002 - 21:47 #7
Her er koden der kan udskrive et tilfældigt citat fra databasen. Koden udskriver kun citatet - jeg håber du selv kan lave resten.

<%
Dim objConn
Dim RS

Set objConn = Server.CreateObject(\"ADODB.Connection\")
Set RS = Server.CreateObject (\"ADODB.Recordset\")
RS.CursorLocation = 3 \' adUseClient
RS.CursorType = 3 \' adOpenStatic
objConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"users.mdb\")
\' Find ID for records hvor citat er indtastet
RS.Open \"select ID from users where not IsNull(citat)\", objConn, , , &H0001 \' adCmdText

if not RS.EOF then

  Max = RS.RecordCount \' Antal valide citater
  Randomize
  intRandom = Int((Max - 1 + 1) * Rnd) \' Find et tilfældigt tal mellem 0 og Max
 
  RS.Move intRandom, 0 \' Find ID for det tilfældige citat

  Set RS = objConn.Execute(\"select * from users where ID=\" & RS(\"ID\")) \' Hent citatet
  Response.Write (RS(\"Citat\")) \' Udskriv citatet
else
  Response.Write (\"Ingen citater.\") \' Der er ikke nogle citater i databasen
end if

RS.Close
Set RS = Nothing

Response.Write \"&nbsp;\"
%>

Mvh. Claus Coltau
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester