har lige leget lidt - fordi jeg havde lidt tid. Har gemt information i applications variable på serveren - som du både kan have positive og negative tanker omkring. Hvis du har en server der tit genstarter ja - så kan der opstå forskellige artikler fra dag til dag - ellers burde det være stabilt.
Håber du kan bruge det og se ideen i det..
/hiks
<% Function VaelgTip(artikelid)
If artikelid = "" then dim sql
SQL = "SELECT * FROM dintabel WHERE status = 'Færdigredigeret';" 'fyr din sql af i recordsset
'//Den skal slås til og rettes til dit recordset 'arrayRS = ditRS.GetRows() dim arrayRS(1,2)
'//Følgende er testdata du skal selvfølgelig klippe nedenstående væk når du kobler database på arrayRS(0,0) = "Hans og Grethe" arrayRS(0,1) = "Der var engang..." arrayRS(0,2) = 1 'VIGTIGT artikelid'et i databasen
arrayRS(1,0) = "Hans og Grethe 2" arrayRS(1,1) = "Der var engang for længe siden..." arrayRS(1,2) = 2 'VIGTIGT artikelid'et i databasen
If IsArray(arrayRS) = True then Randomize 'tilfældig
maxTal = Ubound(arrayRS, 2) 'finder antal records maxTal = Int(Rnd * maxTal) 'finder et tilfældigt tal
Application("artikel") = arrayRS(maxTal, 2) 'sætter dagens artikelid
Response.Write "Overskrift: <b>" & arrayRS(maxTal, 0) & "</b><br>" Response.Write "Tekst: <b>" & arrayRS(maxTal, 1) & "</b><br>" Else 'fejl opstået End if Else SQL = "SELECT * FROM dintabel WHERE artikelID = " & artikelid & ";" 'fyr i database 'If ditRS.EOF = False then ' Response.Write "Overskrift: <b>" & arrayRS(maxTal, 0) & "</b><br>" ' Response.Write "Tekst: <b>" & arrayRS(maxTal, 1) & "</b><br>" 'End if Response.Write "Denne artikel skal udskrives når database kommer med: " & artikelid End if
End Function
dim today
today = Application("dato")
If today <> Date() then Application("dato") = Date() VaelgTip() Else VaelgTip(Application("artikel")) End if
hiks >> Hvis det id den vælger som "dagens id" ikke er i databasen så skriver den ikke noget..
Nogen artikler bliver jo slettet igen.. Så der er huller i id rækken.. eks så eksistere id: 10, 11, 18, 20, 21. Så hvis din kode vælger id 14 så sker der ikke noget.. ud over at den skriver: Denne artikel skal udskrives når database kommer med: 14
nej - det er jo lige præcis det der IKKE sker da den baserer sig på et dagligt SQL udtræk - så medmindre at dagens artikel bliver slettet på dagen så er der intet problem.
SQL = "SELECT * FROM artikler WHERE status = 'Godkendt';" Set ditrs = Conn.Execute(SQL)
'fyr din sql af i recordsset
'//Den skal slås til og rettes til dit recordset arrayRS = ditRS.GetRows()
If IsArray(arrayRS) = True then Randomize 'tilfældig
maxTal = Ubound(arrayRS, 2) 'finder antal records maxTal = Int(Rnd * maxTal) 'finder et tilfældigt tal
Application("artikel") = arrayRS(maxTal, 2) 'sætter dagens artikelid
Response.Write "Overskrift: <b>" & ditrs("titel") & "</b><br>" Response.Write "Tekst: <b>" & ditrs("underskrift") & "</b><br>" Else 'fejl opstået End if Else SQL = "SELECT * FROM artikler WHERE ID = " & artikelid & ";" Set ditrs = Conn.Execute(SQL) 'fyr i database If ditRS.EOF = False then Response.Write "Overskrift: <b>" & ditrs("titel") & "</b><br>" Response.Write "Tekst: <b>" & ditrs("underskrift") & "</b><br>" End if Response.Write "Denne artikel skal udskrives når database kommer med: " & artikelid End if
I tabellen "Artikler" er der så følgende kolonner:
id | titel | resume.....
Det er id feltet den skal hente id'et fra ikke titlen...
Der er noget galt.. Nogen gange så er "artikelid" = et tal.. eks. 2 som det også skal være. Men en gang i mellem så bruger den tekst... Titlen på artiklen. Og så kommer der jo en fejl...
Er der noget sted i din kode hvor vi ikke har fået rettet det med:
Application("artikel") = arrayRS(maxTal, 0) 'sætter dagens artikelid
eller kommer til at sende en tekst med ned i funktionen? Jeg kan ikke lige se pt. hvor det skulle være. Men prøv at kig igennem og se om du kan spotte et sted hvor vi ikke har fået ovenstående rettet.
nej det har ikke noget at sige at det er en mysql database.
Er det din lokale maskine du kører den på?
- der er et sted hvor der står: 'fejl opstået - der hopper den ned hvis den ikke har fat i et array - prøv og se om det er der den hopper ned når du ikke får noget ud. Det gør du ved at response.write "Fejl - intet array!" eller lign.
Kan du ikke når den anden fejl opstår lige paste den ind her - så kan jeg lidt nemmere finde ud af hvad det er.
hvis du vil teste det idag - så laver du jo bare en anden today variabel som du skriver manuelt. Eksempelvis sådan den altid bliver anderledes end dags dato!
Rnd = giver et tal mellem 0 - 1 maxTal = får samlet antal af records startende fra 0
så hvis vi tog Rnd og maxTal og gangede sammen ville disse aldrig komme ud over den grænse, vel? Prøv at fjern de -1. Ellers fatter jeg virkelig minus af dette.
det er derfor at det tal man ganger på er den der styrer!
/hiks
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.