Petsmacker Posted March 19, 2006 Share Posted March 19, 2006 Ok, basically I'm making a mini-PHP-game for my website based on the show 'Deal or no Deal'. On the UK version the prizes are:1p, 10p, 50p, £1, £5, £10, £50, £100, £250, £500, £750, £1000, £3000, £5000, £10,000, £15,000, £20,000, £35,000, £50,000, £75,000, 100,000, £250,000That is 22 different prize values and lo and behold - I have 22 cells in my database for each game (box1, box2, box3...box22).What I want is that when a game is created the prize values go into the database however, none can be repeated, there can only be one each prize in each game, its important that the prizes go into random cells in the database so members can play again and again (there's a league table and whatnot).I hope somebody can help with this. If its handy, the name of my Deal or no Deal table is called '[b]dond[/b]'.1p would need to be represented in the database as 0.01, 10p = 0.10p and 5000 as 5000. Easy.Thanks :) Link to comment https://forums.phpfreaks.com/topic/5272-deal-or-no-deal-remake-need-help/ Share on other sites More sharing options...
litebearer Posted March 19, 2006 Share Posted March 19, 2006 Found this at [a href=\"http://us3.php.net/mt_rand\" target=\"_blank\"]http://us3.php.net/mt_rand[/a][!--quoteo--][div class=\'quotetop\']QUOTE[/div][div class=\'quotemain\'][!--quotec--]Sometimes you need a bunch of unique random numbers and they have to be in a certain small range, here's a simple script that uses an array to remember the numbers generated before:<?php$randomNumbers = array(); // storage arrayfor ($i=0;$i<20;$i++) { $random = mt_rand(0,30); while(in_array($random,$randomNumbers)) { $random = mt_rand(0,30); } array_push($randomNumbers,$random); echo $random;}?>This way, when the while() function finds that the generated number is already in the storage array, it will automatically generate another one until no same number is found, thus eliminating any possibilities of having multiple same numbers... but still random. [/quote]With a little tweaking it should do the trick (use it to randomiz the cell as well as the prize).Lite... Link to comment https://forums.phpfreaks.com/topic/5272-deal-or-no-deal-remake-need-help/#findComment-18744 Share on other sites More sharing options...
Petsmacker Posted March 19, 2006 Author Share Posted March 19, 2006 Thankies, I've managed to get unique random numbers but don't know how to get the exact prize values into the database, as I want the actual values in the database. Link to comment https://forums.phpfreaks.com/topic/5272-deal-or-no-deal-remake-need-help/#findComment-18748 Share on other sites More sharing options...
Petsmacker Posted March 19, 2006 Author Share Posted March 19, 2006 This is the script I've kicked up for the moment:[code]<?$randomNumbers = array(); // storage arrayfor ($i=0;$i<22;$i++) {$random = mt_rand(1,22);while(in_array($random,$randomNumbers)) {$random = mt_rand(1,22); }array_push($randomNumbers,$random);echo "$random";echo "<br>";}$randomNumbers2 = array(); // storage arrayfor ($i2=0;$i2<22;$i2++) {$random2 = mt_rand(1,22);while(in_array($random2,$randomNumbers2)) {$random2 = mt_rand(1,22); }array_push($randomNumbers2,$random2);echo "<font color=\"red\">$random2</font>";echo "<br>";}if ($random == 1){$t=0.01;}if ($random == 2){$t=0.10;}if ($random == 3){$t=0.50;}if ($random == 4){$t=1;}if ($random == 5){$t=5;}if ($random == 6){$t=10;}if ($random == 7){$t=50;}if ($random == 8){$t=100;}if ($random == 9){$t=250;}if ($random == 10){$t=500;}if ($random == 11){$t=750;}if ($random == 12){$t=1000;}if ($random == 13){$t=3000;}if ($random == 14){$t=5000;}if ($random == 15){$t=10000;}if ($random == 16){$t=15000;}if ($random == 17){$t=20000;}if ($random == 18){$t=35000;}if ($random == 19){$t=50000;}if ($random == 20){$t=75000;}if ($random == 21){$t=100000;}if ($random == 22){$t=250000;}echo "SQL: UPDATE dond SET box$random2='$t' WHERE name='$realname'";?>[/code]But I can't get it to do what I want, can anyone help? Link to comment https://forums.phpfreaks.com/topic/5272-deal-or-no-deal-remake-need-help/#findComment-18752 Share on other sites More sharing options...
Barand Posted March 19, 2006 Share Posted March 19, 2006 try something like[code]$prizes = array( 0.01, 0.10, 0.50, 1, 5, 10, 50, 100, 250, 500, 750, 1000, 3000, 5000, 10000, 15000, 20000, 35000, 50000, 75000, 100000, 250000);$dbprizes = $prizes; // copy the array and shuffle itshuffle($dbprizes);$vals = join (',', $dbprizes);mysql_query("INSERT INTO mytable VALUES ($vals))";[/code] Link to comment https://forums.phpfreaks.com/topic/5272-deal-or-no-deal-remake-need-help/#findComment-18761 Share on other sites More sharing options...
Petsmacker Posted March 19, 2006 Author Share Posted March 19, 2006 Yay! Thankies! Link to comment https://forums.phpfreaks.com/topic/5272-deal-or-no-deal-remake-need-help/#findComment-18762 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.