Avatar billede sylvesternielsen Nybegynder
01. marts 2002 - 10:50 Der er 15 kommentarer og
1 løsning

array eller mysql fejl

Jeg prøver at lave et script som viser et tilfældigt udtræk fra min database hvert sek. men den viser kun det samme udtræk hver gang... Hvad er det at jeg gør galt?
-------------------------------------------------------
<html>
<head>
<?
mysql_connect("localhost","djsaw","pipsyl");
mysql_select_db("djsaw");
$result = mysql_query("select * from marquee order by rand()")or die(mysql_error());
$row = mysql_fetch_array($result);

?>
<script language="javascript">
var i = 1
function skrivtxt(){
obj_Span.innerText = '<? echo "$row[text]"; ?> ';
setTimeout("skrivtxt()", 2000);
}
</script>
</head>
<body onload="skrivtxt()">

<SPAN id='obj_Span'>
Tekst skal komme her
</SPAN>
</body>
</html>
------------------------------------------------
Avatar billede barlach Nybegynder
01. marts 2002 - 10:57 #1
du skal seede først med srand();
Avatar billede barlach Nybegynder
01. marts 2002 - 11:00 #2
Du kan f.eks. gøre sådan her

$min=0;
$max=100;

srand ((float)microtime()*1000000);

$r=rand($min,$max);
Avatar billede barlach Nybegynder
01. marts 2002 - 11:01 #3
vær opmærksom på at rand() returnere en INT
Avatar billede sylvesternielsen Nybegynder
01. marts 2002 - 11:03 #4
Kan du ikke skrive hele koden? er ikke så god til det her..
Avatar billede barlach Nybegynder
01. marts 2002 - 11:05 #5
...undskyld...havde ikke lige fattet hvad du ville...tror jeg har fanget det nu =)

mysql_connect("localhost","djsaw","pipsyl");
mysql_select_db("djsaw");
$result = mysql_query("select * from marquee ")or die(mysql_error());
$row = mysql_fetch_array($result);

srand ((float)microtime()*1000000);
shuffle($row);

det her vil blande dine results fra db'en
Avatar billede sylvesternielsen Nybegynder
01. marts 2002 - 11:09 #6
så det skal se sådan ud eller hvad?
-------------------------------------------------------
<html>
<head>
<?
mysql_connect("localhost","djsaw","pipsyl");
mysql_select_db("djsaw");
$result = mysql_query("select * from marquee order by rand()")or die(mysql_error());
$row = mysql_fetch_array($result);
srand ((float)microtime()*1000000);
shuffle($row);

?>
<script language="javascript">
var i = 1
function skrivtxt(){
obj_Span.innerText = '<? echo "$row[text]"; ?> ';
setTimeout("skrivtxt()", 2000);
}
</script>
</head>
<body onload="skrivtxt()">

<SPAN id='obj_Span'>
Tekst skal komme her
</SPAN>
</body>
</html>
---------------------------------------------------------------------
Avatar billede barlach Nybegynder
01. marts 2002 - 11:09 #7
ja det burde virke...
Avatar billede sylvesternielsen Nybegynder
01. marts 2002 - 11:10 #8
Det gør det ikke.. Der er ikke noget min array efter den behandling...
Avatar billede barlach Nybegynder
01. marts 2002 - 11:18 #9
hmmm...prøv med:

<html>
<head>
<?
mysql_connect("localhost","djsaw","pipsyl");
mysql_select_db("djsaw");
$result = mysql_query("select * from marquee order by rand()")or die(mysql_error());
$row = mysql_fetch_array($result);
srand ((float)microtime()*1000000);
shuffle($row);

?>
<script language="javascript">
var i = 1
function skrivtxt(){
obj_Span.innerText = '<? echo "$row[0][text]"; ?> ';
setTimeout("skrivtxt()", 2000);
}
</script>
</head>
<body onload="skrivtxt()">

<SPAN id='obj_Span'>
Tekst skal komme her
</SPAN>
</body>
</html>
Avatar billede barlach Nybegynder
01. marts 2002 - 11:19 #10
hov...nej nej...det var forkert
Avatar billede barlach Nybegynder
01. marts 2002 - 11:22 #11
her:


<html>
<head>
<?
mysql_connect("localhost","djsaw","pipsyl");
mysql_select_db("djsaw");
$result = mysql_query("select * from marquee order by rand()")or die(mysql_error());
$res=array();
while($row =mysql_fetch_array($result)){
array_push($res,$row);

}


srand ((float)microtime()*1000000);
shuffle($res);

?>
<script language="javascript">
var i = 1
function skrivtxt(){
obj_Span.innerText = '<? echo "$res[0][text]"; ?> ';
setTimeout("skrivtxt()", 2000);
}
</script>
</head>
<body onload="skrivtxt()">

<SPAN id='obj_Span'>
Tekst skal komme her
</SPAN>
</body>
</html>
Avatar billede barlach Nybegynder
01. marts 2002 - 12:37 #12
virker dette ikke ?
Avatar billede fri-hash Nybegynder
01. marts 2002 - 17:04 #13
det virker ikke fordi php er serverside og javascript er clientside ... udføres henholdsvis på serveren og i browseren

når siden kaldes fra browseren udføres phpkoden hvorefter filen sendes til browseren

den fil browseren modtager ser herefter sådan ud:


<html>
<head>

<script language="javascript">
var i = 1
function skrivtxt(){
obj_Span.innerText = 'detderstodi$res[0][text]';
setTimeout("skrivtxt()", 2000);
}
</script>
</head>
<body onload="skrivtxt()">

<SPAN id='obj_Span'>
detderstodi$res[0][text]
</SPAN>
</body>
</html>


herefter vil javascript " skrive detderstodi$res[0][text] " hvert andet sekund

altså skal du enten:
trækka alle rækker fra databasen og sende dem i et array og lade javascript vælge en tilfældigt element hvert andet øjeblik
eller:
trække en tilfældig fra databasen som nu og så lade javascript reloade siden hvert andet sekund
Avatar billede fri-hash Nybegynder
01. marts 2002 - 17:07 #14
javascript skrive " detderstodi$res[0][text] "
Avatar billede fri-hash Nybegynder
02. marts 2002 - 19:16 #15
kunne du bruge det til noget??
Avatar billede sylvesternielsen Nybegynder
04. marts 2002 - 08:32 #16
kan du ikke lave koden færdig? Jeg kender ikke til javascript.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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