Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 12-14-2006, 02:48 AM
ChurchMedia's Avatar
ChurchMedia ChurchMedia is offline
 
Join Date: Dec 2002
Location: Las Cruces, NM
Posts: 473
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Randomizing Numbers (the hard way)

Hi -- I'm trying to finish up a script that will pull user ids from a table and assign random ids from the same table to them -- like this:

1 -- 5
2 -- 3
3 -- 2
4 -- 1
5 -- 4

The trick is that a number can't be assigned to itself and it can't be assigned twice. Here is the code I have. It probably doesn't make sense to you, but hopefully you can figure out where I need to patch it up to make it randomize correctly. Right now it's not assigning numbers to themselves, but it is assigning numbers more than once. Thanks for any help you can give!

PHP Code:
// ###################### Assign #######################
if ($_REQUEST['do'] == 'assign') { 
    echo 
"<table>";
    
$qry $db->query_read("SELECT * FROM {$tbl_main} ORDER BY userid ASC");
    
$totalsantas mysql_num_rows($qry);

    while (
$uinfo $db->fetch_array($qry))
    {
    
$get_from $uinfo['get_from'];
    
$give_to $uinfo['give_to'];
    
$uid $uinfo['userid'];
    
$qry2 $db->query_first("SELECT * FROM " TABLE_PREFIX "user WHERE userid = $uid");
    
$uname_from $qry2['username'];
    
$qry_r $db->query_first("SELECT * FROM {$tbl_main} ORDER BY RAND()");
    
$uid2 $qry_r['userid'];
    
$get_from2 $qry_r['get_from'];

    if (!
$get_from $get_from2 AND !$uid $uid2){
        
    
$db->query_write ("UPDATE {$tbl_main} SET give_to='$give_to',get_from='$get_from' WHERE userid='$uid'");


    
$qry3 $db->query_first("SELECT * FROM " TABLE_PREFIX "user WHERE userid = $uid2");
    
$uname_to $qry3['username'];
    
    
    
    echo 
"
            <tr>
                <td>
$uname_from&nbsp;($uid) is assigned to $uname_to&nbsp;($uid2) as Secret Santa.<td>
            </tr>

                    "
;
    }
    }
    echo 
"
            <tr>
                <td>Total Santas: 
$totalsantas<td>
            </tr>
            </table>
        "
;    


Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:21 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03367 seconds
  • Memory Usage 2,209KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete