Function herhalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jordy nvt

Jordy nvt

18/06/2011 17:24:28
Quote Anchor link
Hallo, ik heb het volgende script:

- Eerst wordt er een willekeurig getal X aangemaakt.
- Vervolgens wordt er een functie gemaakt die ook weer een willekeurig getal Y aanmaakt. In deze functie worden X en Y vervolgens opgeteld tot getal Z en er wordt in de database gekeken of er al een rij bestaat waar getal Z in voor komt. Als dat het geval is moet de functie opnieuw worden geladen (getal Y moet opnieuw gegenereerd worden).
- Dan wordt de functie daadwerkelijk aangeroepen en de uitkomst in de database opgeslagen.

Hoe zorg ik er voor dat dit werkt? Het gaat eigenlijk om het herhalen van de functie (stap 2).

Bedankt!
 
PHP hulp

PHP hulp

08/11/2024 10:39:24
 
- SanThe -

- SanThe -

18/06/2011 17:38:13
Quote Anchor link
Recursief?
 
The Force

The Force

18/06/2011 17:53:26
Quote Anchor link
Wat SanThe zegt. Je kan in je functie dezelfde functie opnieuw aanroepen.
 
Jordy nvt

Jordy nvt

19/06/2011 14:35:43
Quote Anchor link
Bedankt, jammer genoeg werkt onderstaand script niet. Kan iemand helpen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$random_x
=mt_rand(1,999);
$random_y=mt_rand(1,999);


function
calculateNumber(){
    global $db;
    global $random_x;
    global $random_y;
    $random_extra_x=mt_rand(-100,100);
    $random_extra_y=mt_rand(-100,100);
    $random_total=$random_x+$random_extra_x+$random_y+$random_extra_y;

    //controleren of getal al in database bestaat
    $define_numbers_again=FALSE;
    $query = "SELECT Id FROM numbers WHERE Random_number='".$random_total."'";
    $result = mysql_query($query, $db);
    if (mysql_num_rows($result) > 0) {
        $define_numbers_again=TRUE;
    }


    if ($define_numbers_again==TRUE){
        calculateNumber();
    }
else{
        return $random_total;
    }
}



$random_total=calculateDistance();
echo $random_total;
?>
 
- SanThe -

- SanThe -

19/06/2011 14:40:41
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    if ($define_numbers_again==TRUE){
        calculateNumber();
    }
else{
        return $random_total;
    }

?>

Moet zijn
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    if ($define_numbers_again==TRUE){
        return calculateNumber();
    }
else{
        return $random_total;
    }

?>
 
Jordy nvt

Jordy nvt

19/06/2011 14:55:51
Quote Anchor link
Idd, dat was de oplossing. Stom. Maar bedankt!
 
- SanThe -

- SanThe -

19/06/2011 14:58:44
Quote Anchor link
Snap je ook waarom?
 
Jordy nvt

Jordy nvt

19/06/2011 15:16:20
Quote Anchor link
Ja, want volgensmij is het toch een constante loop ofzo die gedraaid wordt? En nu geeft ie terug (return) dat de functie opnieuw gedraaid moet worden. Zoiets?
 
- SanThe -

- SanThe -

19/06/2011 15:26:00
Quote Anchor link
Als de functie slaagt geeft ie het juiste antwoord in een return.
Als ie niet slaagt roept ie zichzelf weer aan.
En als dat dan goed gaat krijgt ie een return mee.
Maar hij valt dan terug op de regel waar ie werd aangeroepen.
Dus daar moet de return worden opgevangen en weer in een return gestopt worden anders ben je de returnwaarde kwijt.

Ik hoop dat dit te snappen is. Lastig zo om het even te verwoorden.
 
Pim -

Pim -

19/06/2011 16:25:49
Quote Anchor link
Niet recursief! Do/while!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.