webForumDet fria alternativet

Slumpa (Igen)

16 svar · 336 visningar · startad av nisslass

nisslassMedlem sedan nov. 2001348 inlägg
#1

Hej!

Jag slumpar fram EN artikel genom koden:

<%
Set Connect2 = Server.CreateObject("ADODB.Connection")
Connect2.Open Application("Nyhetsdatabasen")
SQL = "select count(*) AS count_texts from Allt"
Set RS_count_texts = Connect2.Execute(SQL)

Randomize
vilkentext = Int(rnd*RS_count_texts("count_texts")) -0
SQL = "Select * from Allt"

Set RSdbase = Server.CreateObject("ADODB.Recordset")
RSdbase.open SQL, Application("Nyhetsdatabasen")
RSdbase.Move vilkentext

id = RSdbase("id")
rubrik = RSdbase("rubrik")

response.Write id & ": "
Response.Write rubrik

Connect2.close
Set Connect2=nothing
%>

Denna kod slumpar fram 1 rubrik. Jag vill slumpa fram minst 5 st samt att de artiklar där fältet "Visa" (True/False) är =False inte får visas! Hur gör jag detta enklast?

CatZMedlem sedan jan. 20022 440 inlägg
#2
<%
for iSlinga = 1 to 5
 response.write id & " "
 response.write rubrik
next
%>

kanske kan funka ?

nisslassMedlem sedan nov. 2001348 inlägg
#3

nope, då får jag se samma 5 gånger istället..

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Lite otestad kod som du kan utgå från.

<%
Set Connect2 = Server.CreateObject("ADODB.Connection")
Connect2.Open Application("Nyhetsdatabasen")

SQL = "Select id,rubrik from Allt where not visa"
set rsdbase = connect2.execute(sql)
if not rsdbase.eof then
   Randomize
   arr = rsdbase.getrows()
   items = ubound(arr,2) + 1
   noRandoms = 5
   if items < noRandoms then noRandoms = items
   for i = 1 to noRandoms
       ind =  Int(rnd*(items-i+1))
       response.Write arr(0,ind) & ": "
       Response.Write arr(1,ind) & "<br>"
       arr(0,ind) = arr(0,items-1-(i-1))
       arr(1,ind) = arr(1,items-1-(i-1))
  next
end if
Connect2.close
Set Connect2=nothing
%>
nisslassMedlem sedan nov. 2001348 inlägg
#5

Tack ska du ha! Fungerade utmärkt. Har du en liten asp prosessare i skallen? ;)

trexter.comMedlem sedan apr. 20021 203 inlägg
#6

Hur kommer det sig att du döpt kopplingen till Connect2?
Det är inte så att duanvänder två kopplingar? Gör inte det!

:)

nisslassMedlem sedan nov. 2001348 inlägg
#7

Nope, fick koden från ett exempel härifrån och där stod redan Connect2 så jag brydde mig inte om att ändra det...

nisslassMedlem sedan nov. 2001348 inlägg
#8

En till sak, om jag bara vill slumpa fram de rubriker som skrivits den senaste månaden, den senaste veckan eller typ igår. Hur gör jag då? Datum och tid sparas i formatet "2002-08-27 14:15:25" och fältet heter "datum"..

LarsGMedlem sedan dec. 200012 464 inlägg
#9

Access-specific kod

-- dagens datum
SQL = "Select id,rubrik from Allt where not visa and datediff('d',datum,date()) = 0"
-- en vecka 
SQL = "Select id,rubrik from Allt where not visa and datediff('d',datum,date()) < 7"
-- månad
SQL = "Select id,rubrik from Allt where not visa and datediff('m',datum,date()) = 0"

Om du använder datatypen datetime (som man ska) för kolumnen så sparas datum inte enligt det format som du beskrev.

CatZMedlem sedan jan. 20022 440 inlägg
#10

Vad menar du LarsG ? Jag är själv ganska nyfiken på detta då jag ska göra om ett nyhets system ;)

LarsG skrev:

-- månad
SQL = "Select id,rubrik from Allt where not visa and datediff('m',datum,date()) = 0"

Detta gör vad ? hur kan jag använda det till mitt nyhetsarkiv och till at visa alla nyheter den månaden som är aktuell på hemsidan?

LarsGMedlem sedan dec. 200012 464 inlägg
#11

Det tar fram de poster där visa = false och där datumet inte skiljer sig med mer än en månad från dagens datum

nisslassMedlem sedan nov. 2001348 inlägg
#12

kolumnen är Date/Time och Default Value är =Now()
Är det inte bra menar du?

CatZMedlem sedan jan. 20022 440 inlägg
#13

Det beror väl på vad man ska använda det till, men jag tycker det är mycket smidigare att göra

  • år (tal)
  • månad (tal)
  • dag (tal)
  • Tid (kort tid)

Tycker att man får lite störe valmöjligheter när man som jag inte är något proffs :)

EkströmMedlem sedan feb. 20022 594 inlägg
#14

Lägg allt i samma kolumn. Busenkelt att plocka ut det man vill ha ändå... :)

CatZMedlem sedan jan. 20022 440 inlägg
#15

Hur? ;) Jag försökte med mitt nyhets arkiv men det ville inte alls :x

LarsGMedlem sedan dec. 200012 464 inlägg
#16

Använd datatypen datetime.

CatZMedlem sedan jan. 20022 440 inlägg
#17

Jag löste det faktiskt §e så nu har jag bara ett fält som heter Datum :e :e :e Måste med sanning påstå att datum, tid hanteringen i vbscript är i det närmaste komplett!

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