Avatar billede matz Nybegynder
16. august 2008 - 18:41 Der er 31 kommentarer og
3 løsninger

Generer tilfældige tal og gem i php

Jeg er ikke så stærk i Javascript og skal have generet et tilfældigt tal mellem 0-1 og efter 15min skal det så gemmes i MySql php.

Og tallet skal kunne lægges sammen.

Eksempel:

Tilfældigt tal: 1

Nyt tilfældigt tal: 0

Nyt tilfældigt tal: 0

Altså er resultatet her når de 15min er gået 1-0. Der skal gemmes i MySql.

Php har jeg helt styr på.
Avatar billede w13 Novice
16. august 2008 - 18:59 #1
F.eks.:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
window.setTimeout("saverandom.php?rnd="+Math.floor(Math.random()*1),900000);
</script>

</body>
</html>

Denne vil sende brugeren til filen saverandom.php med det tilfældige tal i querystringen rnd efter 15 minutter. Så skal du bare gemme det og sende brugeren tilbage til denne side.
Avatar billede w13 Novice
16. august 2008 - 19:06 #2
Hov, det skulle selvfølgelig være:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
window.setTimeout("window.location.href='saverandom.php?rnd="+Math.floor(Math.random()*1)+"'",900000);
</script>

</body>
</html>
Avatar billede w13 Novice
16. august 2008 - 19:08 #3
Alle gode gange 3:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
window.setTimeout("window.location.href='saverandom.php?rnd="+Math.floor(Math.random()*2)+"'",900000);
</script>

</body>
</html>
Avatar billede matz Nybegynder
16. august 2008 - 19:59 #4
Hvordan vil du så lave det i php hvor den finder et tal? ved godt man bruger Rand(), men ellers?
Avatar billede w13 Novice
16. august 2008 - 20:03 #5
Hvilket? Nu finder den tallet for dig i JavaScript.. :) Jeg tror ikke helt, jeg følger dig. Din PHP-side skal vel bare tilføje det til en Session eller en databasepost.
Avatar billede matz Nybegynder
16. august 2008 - 20:05 #6
Okay, den viser en blank side med din nr.3 kode.
Avatar billede w13 Novice
16. august 2008 - 20:25 #7
Det skal den vel også. =) Der er jo ikke noget indhold på siden. Når der er gået 15 minutter hopper den til saverandom.php?rnd=[tilfældigt tal]
Avatar billede matz Nybegynder
16. august 2008 - 20:26 #8
Ahh, det jeg mente var at den skulle generer tilfældige tal indenfor de 15min
Avatar billede w13 Novice
16. august 2008 - 20:30 #9
Hvor mange? :)
Avatar billede w13 Novice
16. august 2008 - 20:30 #10
Dvs. hvor ofte skal et nyt tal genereres?
Avatar billede matz Nybegynder
16. august 2008 - 20:31 #11
hvert 2 min?
Avatar billede w13 Novice
16. august 2008 - 20:48 #12
Spørger du? :P

Prøv:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
var aRnd=[];
function newRnd(){
    var o=document.getElementById("randomnumbers");
    var iRnd=Math.floor(Math.random()*2);
    aRnd.push(iRnd);
    o.appendChild(document.createTextNode("Tilfældigt tal: "+iRnd));
    o.appendChild(document.createElement("br"));
}
function sendNumbers(){
    window.location.href="saverandom.htm?rnd=45&eh="+aRnd.join("-");
}

window.setInterval("newRnd()",120000)
window.setTimeout("sendNumbers()",900000);
</script>

<div id="randomnumbers"></div>

</body>
</html>
Avatar billede matz Nybegynder
17. august 2008 - 10:21 #13
Ja den er lidt bedre!

Men hver gang der generes et tilfældigt tal kommer det på en ny linje. Kan den plusse det fra det andet?

Eksempel:

Tilfældigt tal: 1-0

Resultat nu: 1-0

Nyt tilfældigt tal: 1-0

Resultat nu: 2-0

Nyt tilfældigt tal: 0-1

Resultat nu: 2-1

Nyt tilfældigt tal: 0-0

Resultat nu: 2-1
Avatar billede w13 Novice
17. august 2008 - 10:33 #14
Jo, det kan det da. Sådan her:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
var aRnd=[];
function newRnd(){
    var o=document.getElementById("randomnumbers");
    var iRnd=Math.floor(Math.random()*2);
    aRnd.push(iRnd);
    o.firstChild.nodeValue="Tilfældige tal: "+aRnd.join("-");
}
function sendNumbers(){
    window.location.href="saverandom.htm?rnd=45&eh="+aRnd.join("-");
}

window.setInterval("newRnd()",120000)
window.setTimeout("sendNumbers()",900000);
</script>

<div id="randomnumbers">&nbsp;</div>

</body>
</html>

Den plusser jo ikke, men den opstiller tallene adskilt af bindestreg.
Avatar billede matz Nybegynder
17. august 2008 - 10:46 #15
Ja den skulle helst plusse det. Kan du lave det?
Avatar billede w13 Novice
17. august 2008 - 10:49 #16
1 + 0 giver stadig 1.. Men ok. =)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
var aRnd=[];
function newRnd(){
    var o=document.getElementById("randomnumbers");
    o.parentNode.style.display="block";
    var iRnd=Math.floor(Math.random()*2);
    aRnd.push(iRnd);
    o.firstChild.nodeValue=parseInt(o.firstChild.nodeValue)+iRnd;
}
function sendNumbers(){
    window.location.href="saverandom.htm?rnd=45&eh="+aRnd.join("-");
}

window.setInterval("newRnd()",120000)
window.setTimeout("sendNumbers()",900000);
</script>

<div style="display:none">Tilfældigt tal: <span id="randomnumbers">0</span></div>

</body>
</html>
Avatar billede w13 Novice
17. august 2008 - 10:50 #17
Men det eneste, som kommer ud af det, er jo at der kun nogengange bliver lagt 1 til tallet.
Avatar billede matz Nybegynder
17. august 2008 - 11:47 #18
Det er også kun nogle gange som skal blive lagt 1 til tallet. Men det mangler stadig dette her:

1-0... der bliver lagt 1 til...Så 2-0...Der bliver lagt 1 til på en anden side... Så 2-1 osv... Lidt ligesom en fodboldkamp resultat.
Avatar billede w13 Novice
17. august 2008 - 12:05 #19
Nåå ok, så det skal være som resultat.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
var aScore=[0,0];
function newScore(){
    var o=document.getElementById("randomscore");
    o.parentNode.style.display="block";
    var iRnd=Math.floor(Math.random()*2);
    var iScore=Math.floor(Math.random()*2);
    aScore[iRnd]+=iScore;
    o.firstChild.nodeValue=aScore.join("-");
}
function sendScore(){
    window.location.href="saverandom.htm?rnd=45&eh="+aScore.join("-");
}

window.setInterval("newScore()",120000)
window.setTimeout("sendScore()",900000);
</script>

<div>Resultat: <span id="randomscore">0-0</span></div>

</body>
</html>
Avatar billede matz Nybegynder
17. august 2008 - 13:03 #20
Mange tak det virker nu :-)

Jeg vil lige høre, kan man også lave en tid på? Så der kommer til at stå:

Resultat: 0-0  1min <-- Den tid der er gået af de 15min

Og kan man udskrive en tekst hvis værdien er 0?

Eksempel:

Resultat: 0-0  1min

Nr.1 Tekst!!!

Nr.2 Tekst!!

Jeg ved godt at dette ikke var med i spørgsmålet her, men jeg kan vel oprette et nyt spørgsmål og give point der?
Avatar billede w13 Novice
17. august 2008 - 13:14 #21
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
var aScore=[0,0];
var iMin=0;
function newScore(){
    iMin++;
    var o=document.getElementById("randomscore");
    o.parentNode.style.display="block";
    var iRnd=Math.floor(Math.random()*2);
    var iScore=Math.floor(Math.random()*2);
    aScore[iRnd]+=iScore;
    o.firstChild.nodeValue=aScore.join("-")+"  "+iMin+"min";
}
function sendScore(){
    window.location.href="saverandom.htm?rnd=45&eh="+aScore.join("-");
}

window.setInterval("newScore()",60000)
window.setTimeout("sendScore()",900000);
</script>

<div>Resultat: <span id="randomscore">0-0</span></div>

</body>
</html>

Jeg forstår ikke det med at udskrive en tekst, hvis værdien er nul. Hvad skal der stå i teksten, for så kan det være, jeg forstår idéen?
Avatar billede matz Nybegynder
17. august 2008 - 13:24 #22
Eksempel:

Hvis værdi er 0. så skal den udskrive en random tekst som kunne være "Han skød ved siden af".

Hvis værdi er 0 igen. så skal den udskrive en ny random tekst som kunne være "Han brændte!".

Så vil det komme til at se sådan her ud:

Resultat: 0-0 1min

Han skød ved siden af!

Han brændte!
Avatar billede w13 Novice
17. august 2008 - 13:39 #23
<script type="text/javascript">
var aNotes=["Han skød ved siden af!","Han brændte!"];
var aScore=[0,0];
var iMin=0;
function newScore(){
    iMin++;
    var o=document.getElementById("randomscore");
    var iRnd=Math.floor(Math.random()*2);
    var iScore=Math.floor(Math.random()*2);
    var iNote=Math.floor(Math.random()*aNotes.length);

    aScore[iRnd]+=iScore;

    o.firstChild.nodeValue=aScore.join("-")+"  "+iMin+"min";

    if(!iScore){
        document.getElementById("randomnote").appendChild(document.createTextNode(aNotes[iNote]));
        document.getElementById("randomnote").appendChild(document.createElement("br"));
    }
}
function sendScore(){
    window.location.href="saverandom.htm?rnd=45&eh="+aScore.join("-");
}

window.setInterval("newScore()",60000)
window.setTimeout("sendScore()",900000);
</script>

<div>Resultat: <span id="randomscore">0-0</span></div>
<br>
<div id="randomnote"></div>

</body>
</html>
Avatar billede matz Nybegynder
17. august 2008 - 14:47 #24
Perfekt :-)

Det ville nok også være mest logisk hvis der kunne komme en tekst når der scores?

Jeg tænkte på - Kunne "Scoren" og tiden der er gået være uafhænging af hinanden?
Avatar billede w13 Novice
17. august 2008 - 14:58 #25
"Kunne Scoren og tiden der er gået være uafhængig af hinanden?" - hvad mener du her?
Avatar billede matz Nybegynder
17. august 2008 - 15:07 #26
Scoren opdateres kun når tiden opdateres...

Eksempel:

Resultat: 0-0 1min

Resultat: 1-0 2min

Resultat: 2-0 3min

Kan det være sådan her:

Resultat: 0-0 1min

Resultat: 1-0 1min

Resultat: 1-0 2min

osv...Altså de ikke følger hinanden.
Avatar billede w13 Novice
17. august 2008 - 15:31 #27
Hvor ofte skulle scoren så opdateres? :) Jeg kan godt gøre det tilfældigt, hvornår den bliver opdateret, men der skal vel ikke kunne gå hele timer.. Så jeg skal bruge minimum og et maksimum antal sekunder, der skal gå, før der bliver fundet en ny score.
Avatar billede matz Nybegynder
17. august 2008 - 15:39 #28
Mellem 30-300 sek.
Avatar billede matz Nybegynder
17. august 2008 - 15:43 #29
Måske hellere 30-600 sek.
Avatar billede w13 Novice
17. august 2008 - 15:52 #30
Du kan jo prøve denne her:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
var aNotes=["Han skød ved siden af!","Han brændte!"];
var aScore=[0,0];
var iSec=0;
function newScore(){
    var o=document.getElementById("randomscore");
    var iRnd=Math.floor(Math.random()*2);
    var iScore=Math.floor(Math.random()*2);
    var iNote=Math.floor(Math.random()*aNotes.length);

    aScore[iRnd]+=iScore;

    o.firstChild.nodeValue=aScore.join("-");

    if(!iScore){
        document.getElementById("randomnote").appendChild(document.createTextNode(aNotes[iNote]));
    }else{
        document.getElementById("randomnote").appendChild(document.createTextNode("Der blev scoret!"));
    }
    document.getElementById("randomnote").appendChild(document.createElement("br"));

    window.setTimeout("newScore()",(Math.floor(Math.random()*570)+30)*1000);
}

function updateTime(){
    iSec++;
    document.getElementById("timepassed").firstChild.nodeValue=Math.floor(iSec/60)+" min., "+iSec%60+" sek.";
}

function sendScore(){
    window.location.href="saverandom.htm?rnd=45&eh="+aScore.join("-");
}

window.setTimeout("newScore()",(Math.floor(Math.random()*570)+30)*1000);

window.setInterval("updateTime()",1000);

window.setTimeout("sendScore()",900000);
</script>

<div>Resultat: <span id="randomscore">0-0</span> | <span id="timepassed">0 min., 0 sek.</span></div>
<br>
<div id="randomnote"></div>

</body>
</html>
Avatar billede matz Nybegynder
17. august 2008 - 16:54 #31
Det ser jo perfekt ud!

Kan man gøre så den sender oplysningerne, men ikke går væk fra siden?
Avatar billede w13 Novice
17. august 2008 - 16:59 #32
Det skal du nok bruge AJAX til, men vi kan jo snyde lidt og bruge et skjult IFrame.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
var aNotes=["Han skød ved siden af!","Han brændte!"];
var aScore=[0,0];
var iSec=0;
function newScore(){
    var o=document.getElementById("randomscore");
    var iRnd=Math.floor(Math.random()*2);
    var iScore=Math.floor(Math.random()*2);
    var iNote=Math.floor(Math.random()*aNotes.length);

    aScore[iRnd]+=iScore;

    o.firstChild.nodeValue=aScore.join("-");

    if(!iScore){
        document.getElementById("randomnote").appendChild(document.createTextNode(aNotes[iNote]));
    }else{
        document.getElementById("randomnote").appendChild(document.createTextNode("Der blev scoret!"));
    }
    document.getElementById("randomnote").appendChild(document.createElement("br"));

    window.setTimeout("newScore()",(Math.floor(Math.random()*570)+30)*1000);
}

function updateTime(){
    iSec++;
    document.getElementById("timepassed").firstChild.nodeValue=Math.floor(iSec/60)+" min., "+iSec%60+" sek.";
}

function sendScore(){
    document.getElementById("hiddeniframe").setAttribute("src","saverandom.htm?rnd=45&eh="+aScore.join("-"));
}

window.setTimeout("newScore()",(Math.floor(Math.random()*570)+30)*1000);

window.setInterval("updateTime()",1000);

window.setTimeout("sendScore()",900000);
</script>

<div>Resultat: <span id="randomscore">0-0</span> | <span id="timepassed">0 min., 0 sek.</span></div>
<br>
<div id="randomnote"></div>

<iframe id="hiddeniframe"></iframe>

</body>
</html>
Avatar billede w13 Novice
17. august 2008 - 17:00 #33
Hov, den vil kun sende det én gang. Gør sådan her i stedet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Tilfældigt tal</title>
</head>
<body>

<script type="text/javascript">
var aNotes=["Han skød ved siden af!","Han brændte!"];
var aScore=[0,0];
var iSec=0;
function newScore(){
    var o=document.getElementById("randomscore");
    var iRnd=Math.floor(Math.random()*2);
    var iScore=Math.floor(Math.random()*2);
    var iNote=Math.floor(Math.random()*aNotes.length);

    aScore[iRnd]+=iScore;

    o.firstChild.nodeValue=aScore.join("-");

    if(!iScore){
        document.getElementById("randomnote").appendChild(document.createTextNode(aNotes[iNote]));
    }else{
        document.getElementById("randomnote").appendChild(document.createTextNode("Der blev scoret!"));
    }
    document.getElementById("randomnote").appendChild(document.createElement("br"));

    window.setTimeout("newScore()",(Math.floor(Math.random()*570)+30)*1000);
}

function updateTime(){
    iSec++;
    document.getElementById("timepassed").firstChild.nodeValue=Math.floor(iSec/60)+" min., "+iSec%60+" sek.";
}

function sendScore(){
    document.getElementById("hiddeniframe").setAttribute("src","saverandom.htm?rnd=45&eh="+aScore.join("-"));
}

window.setTimeout("newScore()",(Math.floor(Math.random()*570)+30)*1000);

window.setInterval("updateTime()",1000);

window.setInterval("sendScore()",900000);
</script>

<div>Resultat: <span id="randomscore">0-0</span> | <span id="timepassed">0 min., 0 sek.</span></div>
<br>
<div id="randomnote"></div>

<iframe id="hiddeniframe"></iframe>

</body>
</html>
Avatar billede matz Nybegynder
19. august 2008 - 17:04 #34
Mange tak :)

Oprette lige et spørgsmål mere med denne kode!
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

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