Virker stadig ikke. Bruger forøvrigt også denne: "SELECT * FROM Trailer Where tvdag = '"&fncTextChange(Weekday(Now,VbMonday))&"' AND tvactive order by tvtid"
normalt et andet sted. Og der virker ORDER fint uden ASC, DESC. Men her vil den bare slet ikke ORDER efter noget som helst.
Randomize timer newId = Int (rnd*inDB) strIndex = "," & newid & "," indexFound = 1 Do while indexFound <10 Do Newid = Int (rnd*inDB) Loop while inStr(strIndex,"," & newid & ",") > 0 strIndex = strIndex & newid & "," indexFound = indexFound + 1 Loop strIndex = mid (strIndex,2,len(strIndex)-2)
Finde X antal tilfældige poster som udskrives lige efet, og det betyder at den kan tage poster: 500,3,76,44,32,1,55 altså de vil ikke være i rækkefølge.
tv er et klokkeslet for hvornår et film begynder i tv. Dvs. et nummer man selv sætter ind. f.eks 22:30.
Randomkoden ovenfor har jeg fundet herinde. Da jeg ikke gad oprette et spm og søgte i stedet for. Så hvornår jeg får den til at 'order' ved jeg ikke. :)
Rs.Open "SELECT * FROM Trailer Where tvdag = '"&fncTextChange(Weekday(Now,VbMonday))&"' AND tvactive order by tvtid", Cn,1,3 inDB = rs.RecordCount If inDB > 10 then Randomize timer newId = Int (rnd*inDB) strIndex = "," & newid & "," indexFound = 1 Do while indexFound <10 Do Newid = Int (rnd*inDB) Loop while inStr(strIndex,"," & newid & ",") > 0 strIndex = strIndex & newid & "," indexFound = indexFound + 1 Loop strIndex = mid (strIndex,2,len(strIndex)-2) myArr=split(strIndex,",",-1) For i = Lbound(myArr) to Ubound(myArr) rs.move myArr(i),1 Response.write ("<tr>") Response.write ("<td class='boks_indhold_taeller'>"& rs("Titel") &"</td>" & vbcrlf) Response.write ("<td class='boks_indhold_taeller'>"& rs("tvkanal") &"</td>" & vbcrlf) Response.write ("<td class='boks_indhold_taeller'>"& rs("tvtid") &"</td>" & vbcrlf) Response.write ("</tr>") next end if
Til dette og så skal tvtid være en autonumer kolonne:
Randomize timer R=clng(100000*rnd) Rs.Open "SELECT * FROM (SELECT top 10 * FROM Trailer Where tvdag = '"&fncTextChange(Weekday(Now,VbMonday))&"' AND tvactive = true ORDER BY rnd(-(tvtid)*" & R & ")) as t1 order by t1.tvtid", Cn,1,3 Do while not RS.EOF Response.write ("<tr>") Response.write ("<td class='boks_indhold_taeller'>"& rs("Titel") &"</td>" & vbcrlf) Response.write ("<td class='boks_indhold_taeller'>"& rs("tvkanal") &"</td>" & vbcrlf) Response.write ("<td class='boks_indhold_taeller'>"& rs("tvtid") &"</td>" & vbcrlf) Response.write ("</tr>") RS.Movenext loop
Ark ja, det betyder jo en hel del. ;) Fik min fncTextChange til at virke. Dog giver din order by fejl: Rs.Open "SELECT * FROM Trailer Where tvdag = '"&fncTextChange2(Weekday(Now,VbMonday))&"' AND tvactive = True ORDER BY rnd(-(tvtid)*" & R & "))", Cn,1,3
fejl: Microsoft JET Database Engine error '80040e14'
Rs.Open "SELECT * FROM Trailer Where tvdag = '"&fncTextChange2(Weekday(Now,VbMonday))&"' AND tvactive = True ORDER BY rnd(-(tvtid)*" & R & "))", Cn,1,3
Så vidt jeg kan se skriver den 'rnd(-(id)*)) i fejl koden, men det er tvtid der står i Rs.Open linien?
Randomize timer R=clng(100000*rnd) Rs.Open "SELECT * FROM Trailer Where tvdag = '"&fncTextChange2(Weekday(Now,VbMonday))&"' AND tvactive = True ORDER BY rnd(-(tvtid)*" & R & "))", Cn,1,3
Det er vel ikke sådan den på en eller anden måde læser tvtid forkert?
Fejlen kommer i linie 122 så er denne linie i linie 122?
Rs.Open "SELECT * FROM Trailer Where tvdag = '"&fncTextChange2(Weekday(Now,VbMonday))&"' AND tvactive = True ORDER BY rnd(-(tvtid)*" & R & "))", Cn,1,3
Rs.Open "SELECT * FROM Trailer Where tvdag = '"&fncTextChange2(Weekday(Now,VbMonday))&"' AND tvactive = True ORDER BY rnd(-(tvtid)*" & R & "))", Cn,1,3
Prøv at rette den til dette jeg har vist fåret sat en ) for meget ind:
Rs.Open "SELECT * FROM Trailer Where tvdag = '"&fncTextChange2(Weekday(Now,VbMonday))&"' AND tvactive = True ORDER BY rnd(-(tvtid)*" & R & ")", Cn,1,3
Men den order by ændre ikke på at du ikke får sortere dem, hvis du vil kunne sortere på en kolonne samt den vælger ti tilfældige ud skal du bruge det kode som jeg har vist 25/04-2006 12:07:45. Dog skal SQL sætningen nok tilpasses til dine kolonner.
og ORDER BY rnd(-(tvtid)*" & R & ") bruges til at sortere indholdet tilfældigt.
det kan erstatte det koden du har som finder 10 tilfældige poster, det er i princippet dette kode:
inDB = rs.RecordCount If inDB > 10 then Randomize timer newId = Int (rnd*inDB) strIndex = "," & newid & "," indexFound = 1 Do while indexFound <10 Do Newid = Int (rnd*inDB) Loop while inStr(strIndex,"," & newid & ",") > 0 strIndex = strIndex & newid & "," indexFound = indexFound + 1 Loop strIndex = mid (strIndex,2,len(strIndex)-2) myArr=split(strIndex,",",-1) For i = Lbound(myArr) to Ubound(myArr) rs.move myArr(i),1 'Udskriver data next end if
Når du både vil havde 10 tilfældige poset og de skal sorteres efter tvtid så skal det laves med en sub-select som finder 10 tilfældige poser som så sorteres:
Rs.Open "SELECT * FROM (SELECT top 10 * FROM Trailer Where tvdag = '"&fncTextChange(Weekday(Now,VbMonday))&"' AND tvactive = true ORDER BY rnd(-(tvtid)*" & R & ")) as t1 order by t1.tvtid", Cn,1,3
Og derfor skal koden laves i stil med det som er vist 25/04-2006 12:07:45
Uanset hvordan jeg gør siger den: Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/test2/Default.asp, line 124
Denne linie: Rs.Open "SELECT * FROM (SELECT top 10 * FROM Trailer Where tvdag = '"&fncTextChange2(Weekday(Now,VbMonday))&"' AND tvactive = true ORDER BY rnd(-(tvtid)*" & R & ")) as t1 order by t1.tvtid", Cn,1,3
mit bud er fordi tvtid ikke er en tal kolonne, men enten teskt eller dato type så fejler rnd. Du skal i denne hvor der står XX skrive navnet på din autonummer kolonne som er i tabellen Trailer:
Rs.Open "SELECT * FROM (SELECT top 10 * FROM Trailer Where tvdag = '"&fncTextChange2(Weekday(Now,VbMonday))&"' AND tvactive = true ORDER BY rnd(-(XX)*" & R & ")) as t1 order by t1.tvtid", Cn,1,3
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.