rand
SomaQan - 07/05/2009 00:30
PHP beginner
Hallo Sima leden.
Ik heb een probleem.
Ik heb namelijk 11 query's waarbij ik een rand getal mee wil geven, maar moet ik nou 11 keer de rand functie herhalen voor elke query?
Zo doe ik het nu maar als ik telkens alles moet herhalen...
$aanvallen1 = rand(55,74);
$aanvallen2 = rand(55,74);
$verdededigen1 = rand(55,74);
$verdededigen2 = rand(55,74);
mysql_query("INSERT INTO spelers (voornaam,achternaam,positie,aanvallen,verdedigen,eigenaar_lid_id)))
VALUES ('".$input[$voornaam[1]]."','".$test[$achternaam[1]]."', 'Keeper','0','".$verdededigen."','".$gebruikersnaam."')") or die(mysql_error());
mysql_query("INSERT INTO spelers (voornaam,achternaam,positie,aanvallen,verdedigen,eigenaar_lid_id)))
VALUES ('".$input[$voornaam[2]]."','".$test[$achternaam[2]]."', 'Keeper','0','".$verdededigen."','".$gebruikersnaam."')") or die(mysql_error());
$aanvallen1 = rand ( 55 , 74 ) ; $aanvallen2 = rand ( 55 , 74 ) ;
$verdededigen1 = rand ( 55 , 74 ) ; $verdededigen2 = rand ( 55 , 74 ) ;
mysql_query ( "INSERT INTO spelers (voornaam,achternaam,positie,aanvallen,verdedigen,eigenaar_lid_id))) VALUES ('" . $input [ $voornaam [ 1 ] ] . "','" . $test [ $achternaam [ 1 ] ] . "', 'Keeper','0','" . $verdededigen . "','" . $gebruikersnaam . "')" ) or
die ( mysql_error ( ) ) ;
mysql_query ( "INSERT INTO spelers (voornaam,achternaam,positie,aanvallen,verdedigen,eigenaar_lid_id))) VALUES ('" . $input [ $voornaam [ 2 ] ] . "','" . $test [ $achternaam [ 2 ] ] . "', 'Keeper','0','" . $verdededigen . "','" . $gebruikersnaam . "')" ) or
die ( mysql_error ( ) ) ;
7 antwoorden
Gesponsorde links
vinTage - 07/05/2009 00:47
Nieuw lid
titjes zn oplossing komt al dichterbij dan je eigen voorstel, want ik neem aan dat je niet 2 ventjes op dezelfde plaats wilt hebben (wat bij 11 keer random best zou kunnen voorkomen)
Wim - 07/05/2009 00:55
Crew algemeen
Je kan ook de RAND() functie van MySQL zelf gebruiken.
dev.mysql.com schreef:
To obtain a random integer R in the range i <= R < j, use the expression FLOOR(i + RAND() * (j – i)). For example, to obtain a random integer in the range the range 7 <= R < 12, you could use the following statement:
SELECT FLOOR(7 + (RAND() * 5));
FLOOR(55 + (RAND() * 19))
FLOOR( 55 + ( RAND( ) * 19 ) )
SomaQan - 07/05/2009 15:45
PHP beginner
Ik kom er niet uit.
Is er geen while achtige manier voor een rand functie dat je maar 1x de rand functie gebruikt maar dat er verschillende getallen uitkomen ?
nielsvdwal - 07/05/2009 16:11
PHP gevorderde
<?php
for (i=1;i<= 11; i++) {
$aanvallen1 = rand(55,74);
$aanvallen2 = rand(55,74);
$verdededigen1 = rand(55,74);
$verdededigen2 = rand(55,74);
mysql_query("INSERT INTO spelers (voornaam,achternaam,positie,aanvallen,verdedigen,eigenaar_lid_id)))
VALUES ('".$input[$voornaam[$i]]."','".$test[$achternaam[$i]]."', 'Keeper','0','".$verdededigen."','".$gebruikersnaam."')") or die(mysql_error());
mysql_query("INSERT INTO spelers (voornaam,achternaam,positie,aanvallen,verdedigen,eigenaar_lid_id)))
VALUES ('".$input[$voornaam[$i]]."','".$test[$achternaam[$i]]."', 'Keeper','0','".$verdededigen."','".$gebruikersnaam."')") or die(mysql_error());
}
<?php
for ( i= 1 ; i<= 11 ; i++ ) {
$aanvallen1 = rand ( 55 , 74 ) ; $aanvallen2 = rand ( 55 , 74 ) ;
$verdededigen1 = rand ( 55 , 74 ) ; $verdededigen2 = rand ( 55 , 74 ) ;
mysql_query ( "INSERT INTO spelers (voornaam,achternaam,positie,aanvallen,verdedigen,eigenaar_lid_id))) VALUES ('" . $input [ $voornaam [ $i ] ] . "','" . $test [ $achternaam [ $i ] ] . "', 'Keeper','0','" . $verdededigen . "','" . $gebruikersnaam . "')" ) or
die ( mysql_error ( ) ) ;
mysql_query ( "INSERT INTO spelers (voornaam,achternaam,positie,aanvallen,verdedigen,eigenaar_lid_id))) VALUES ('" . $input [ $voornaam [ $i ] ] . "','" . $test [ $achternaam [ $i ] ] . "', 'Keeper','0','" . $verdededigen . "','" . $gebruikersnaam . "')" ) or
die ( mysql_error ( ) ) ; }
of snap ik jou hele vraag nou gewoon niet??
SomaQan - 07/05/2009 18:31
PHP beginner
Bedankt @Nielsvdwal je hebt me in de richting geholpen met je for loop.
Gesponsorde links
Dit onderwerp is gesloten .