Avatar billede sp Nybegynder
10. oktober 2001 - 12:55 Der er 19 kommentarer og
1 løsning

15 tilfældige udtræk fra databasen

Hej jeg skal bruge en source der kan tage 15 forskellige udtræk fra databasen

mvh
Søren Peter
Avatar billede medions Nybegynder
10. oktober 2001 - 12:56 #1
de 15 første eller hvad er det du vil?
Avatar billede sp Nybegynder
10. oktober 2001 - 13:02 #2
nej 15 tilfældige.
jeg ved godt hvordan man tager top 15
Avatar billede carpediem Nybegynder
10. oktober 2001 - 13:44 #3
SELECT top 15 * FROM Tabel
ORDER BY RAND((DATEPART(ms,getdate()) * ID) * 1000)

ACCESS:

SELECT TOP 15 * FROM Tabel ORDER BY Rnd(ID) 
Avatar billede carpediem Nybegynder
10. oktober 2001 - 13:45 #4
Den øverste er til MS SQL
Avatar billede sp Nybegynder
10. oktober 2001 - 13:53 #5
Du skriver ACCES betyder det at det er til MS ACCES?
Avatar billede carpediem Nybegynder
10. oktober 2001 - 13:55 #6
Ja, med det mener jeg MS Access
Avatar billede eagleeye Praktikant
10. oktober 2001 - 14:05 #7
carpendiem>>
Tager den 15 tilfældige eller tager den 1 tilfældig og så de efterfælgende 14 ?
Avatar billede sp Nybegynder
10. oktober 2001 - 14:22 #8
Men du skriver at det er den øverste der er MS SQL
Avatar billede carpediem Nybegynder
10. oktober 2001 - 14:24 #9
eagleeye>> Den skulle meget gerne tage 15 tilfældige

sp>> Ja MS SQL Server
Avatar billede carpediem Nybegynder
10. oktober 2001 - 14:25 #10
sp>>Der er stor forskel på hvordan MS SQL Server og MS Access håndterer SQL strenge.
Avatar billede eagleeye Praktikant
10. oktober 2001 - 14:28 #11
OK.
Jeg kom lidt i tvivl fordi ORDER BY bruges jo normalt til at sige hvilken kolonne man vil sortere efter, og man kan enten angive DESC eller ASC. Og man bruger WHERE til at vælge med??

Jeg vil da lige prøve når jeg kommer hjem.
Avatar billede carpediem Nybegynder
10. oktober 2001 - 14:39 #12
eagleeye>> Det er korrekt, men sorterer man jo efter et tilfældigt tal. Det er der Rnd(ID) kommer ind
Avatar billede eagleeye Praktikant
10. oktober 2001 - 17:10 #13
carpediem>> Den vælger random poster, men når jeg trykker refresh er det de samme poster den vælger hver gang. Selv når jeg starter en ny browser op er det de samme poster som vælges.
Avatar billede eagleeye Praktikant
10. oktober 2001 - 17:19 #14
Jeg har lavet dette scrip som vælger 15 forskellige records, og når man trykker refresh er det 15 nye records:

Rs.Open \"SELECT * FROM abbtabel\", myConn,1,3
inDB = rs.RecordCount
If inDB > 15 then
  Randomize timer
  newId = Int (rnd*inDB)
  strIndex = \",\" & newid & \",\"
  indexFound = 1
  Do while indexFound <15
    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 \" UDSKRIV DATA HER med rs(\"\"FELT\"\") .... \"
  next
end if
Rs.Close
Avatar billede sp Nybegynder
10. oktober 2001 - 20:18 #15
Den siger Object required: \'\'
<%
Set Con = Server.CreateObject(\"ADODB.Connection\")
DBPath = \"DBQ=\" & server.mappath(\"tip.mdb\")
Con.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath



Rs.Open \"SELECT * FROM tips\", Con,1,3
inDB = rs.RecordCount
If inDB > 15 then
  Randomize timer
  newId = Int (rnd*inDB)
  strIndex = \",\" & newid & \",\"
  indexFound = 1
  Do while indexFound <15
    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 rs(\"Text\")&\"<br>\"
  Response.write i
    next
end if
Rs.Close
con.close
Set con = nothing

%>
Avatar billede eagleeye Praktikant
10. oktober 2001 - 20:23 #16
du skal havde denne med:
Set rs = Server.CreateObject(\"ADODB.RecordSet\")

Evt sådan her:
Set Con = Server.CreateObject(\"ADODB.Connection\")
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
DBPath = \"DBQ=\" & server.mappath(\"tip.mdb\")
..resten af din kode...

Avatar billede sp Nybegynder
10. oktober 2001 - 20:45 #17
Det virker. Jeg har dog sat
indexFound <14, da den ellers tager 16 udtræk!

mvh
Søren Peter
Avatar billede sp Nybegynder
10. oktober 2001 - 21:12 #18
Nej jeg talte forkert.
Nu har jeg prøvet at sætte det sammen med et java script:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">

<html>
<head>

<title></title>
<script language=\"JavaScript\" type=\"text/javascript\">
<!--
if(document.layers){
document.write(\'<style>#subtickertape{width:120%;}</style>\');
}
else if(document.all){
document.write(\'<style>#subtickertape{width:100%;}</style>\');
}
-->
</script>

<style type=\"text/css\">
<!--



#tickertape{
position:relative;
layer-background-color:black;
left:0;
top:0;
height:5%;
}

#subtickertape{
background-color:black;
position:absolute;
left:0;
top:0;
border: 1px solid black;
height:5%;
}

.subtickertapefont{
top:0;
font:bold 12px arial;
text-decoration:none;
color:white;
}

.subtickertapefont a{
top:0;
color:white;
text-decoration:none;
}
.hvid{
color: #FFFFFF

}
-->


</style>
</head>
<body onload=\"if(document.all||document.layers){regenerate2();update()}\">

<%

Set Con = Server.CreateObject(\"ADODB.Connection\")
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
DBPath = \"DBQ=\" & server.mappath(\"tip.mdb\")
Con.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath
%>
<script language=\"JavaScript\" type=\"text/javascript\">
<!--

if(document.layers || document.all){
document.write(\'<div id=\"tickertape\" align=\"center\">\')
document.write(\'<div id=\"subtickertape\" class=\"subtickertapefont\">Initializing...</div></div>\')
}

var speed=5000

var news=new Array()
<%
Rs.Open \"SELECT * FROM tips\", Con,1,3
inDB = rs.RecordCount
If inDB > 15 then
  Randomize timer
  newId = Int (rnd*inDB)
  strIndex = \",\" & newid & \",\"
  indexFound = 1
  Do while indexFound <15
    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
        %>
 



news[<% =i %>]=\' <% =rs(\"Text\")%>\';
<%
    next
end if
Rs.Close
con.close
Set con = nothing

%>
//expand or shorten this list of messages as desired
   
       
i=0
if (document.all)
tickerobject=document.all.subtickertape.style
else
tickerobject=document.tickertape.document
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (document.layers)
setTimeout(\"window.onresize=regenerate\",450)
}

function update(){
BgFade(0xff,0xff,0xff, 0x00,0x00,0x00,10);
if (document.layers){
document.tickertape.document.subtickertape.document.write(\'<table width=\"100%\" border=0><tr><td align=\"center\" valign=\"top\"><span class=\"subtickertapefont\">\'+news[i]+\'</span></td></tr></table>\')
document.tickertape.document.subtickertape.document.close()
}
else
document.all.subtickertape.innerHTML=\'<table width=\"100%\" border=0><tr><td align=\"center\" valign=\"top\"><span class=\"subtickertapefont\">\'+news[i]+\'</span></td></tr></table>\';

if (i<news.length-1)
i++
else
i=0
setTimeout(\"update()\",speed)
}

function BgFade(red1, grn1, blu1, red2,
grn2, blu2, steps) {
sred = red1; sgrn = grn1; sblu = blu1;
ered = red2; egrn = grn2; eblu = blu2;
inc = steps;
step = 0;
RunFader();
}
function RunFader() {
var epct = step/inc;
var spct = 1 - epct;
if (document.layers)
tickerobject.bgColor =
Math.floor(sred * spct + ered *
epct)*256*256 +
Math.floor(sgrn * spct + egrn * epct)*256 +
Math.floor(sblu * spct + eblu * epct);
else
tickerobject.backgroundColor=
Math.floor(sred * spct + ered *
epct)*256*256 +
Math.floor(sgrn * spct + egrn * epct)*256 +
Math.floor(sblu * spct + eblu * epct);
if ( step < inc ) {
setTimeout(\'RunFader()\',50);
}
step++;
}

    //-->
</script>   
       
       
       
       



</body>
</html>

mvh
Søren Peter
Avatar billede eagleeye Praktikant
10. oktober 2001 - 21:21 #19
cool javascript du har der :)
Avatar billede sp Nybegynder
10. oktober 2001 - 21:34 #20
Det virker glimrende:-)
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