Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 02-26-2003, 05:57 PM
fla5h's Avatar
fla5h fla5h is offline
 
Join Date: Dec 2002
Posts: 50
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default cross linking two arrays ?

Can someone help ?

I'm trying to write good code, keeping queries to a minimum etc.

What I want to do is take a query which returns an array, then you do a while loop to cycle through the array.

Is there anyway to crossreferece this with another array without putting it into the loop ?

Lets post an example, it will probably help, lol

If you take the karma hack, usercp bit.

PHP Code:

// ############################### start karma ###############################

if($karmaenable==1) {

    
$karmas=$DB_site->query("SELECT karma.postid as postid,karmapos,karmaneg,reason,post.threadid as threadid,post.dateline as dateline,thread.title as title FROM karma LEFT JOIN post ON karma.postid=post.postid LEFT JOIN thread ON post.threadid=thread.threadid WHERE karma.userid='$bbuserinfo[userid]' ORDER BY timestamp DESC LIMIT 0,5");

    
$uk=$DB_site->query_first("SELECT karma FROM user WHERE userid='$bbuserinfo[userid]'");

    
$haskarma=0;
    while(
$karma=$DB_site->fetch_array($karmas)) {

        if (
$karma[karmapos] > $karma[karmaneg])
            
$karmaposneg="karmapos.gif";
        else if (
$karma[karmaneg] > $karma[karmapos])
            
$karmaposneg="karmaneg.gif";
        else
            
$karmaposneg="karmabalance.gif";

        
$karma[timeline]=vbdate($timeformat,$karma[dateline]);
        
$karma[dateline]=vbdate($dateformat,$karma[dateline]);

        
$karma[reason]=bbcodeparse($karma[reason]);

        if (
strlen($karma[title]) > 25)
            
$karma[title] = substr($karma[title],0,23)."<smallfont>...</smallfont>";

        eval(
"\$karmacommentbits .= \"".gettemplate("karma_usercpcommentbits")."\";");
        
$haskarma=1;

    }

    if (
$haskarma==1)
        eval(
"\$karmacomments = \"".gettemplate("karma_usercpcomments")."\";");
    else
        eval(
"\$karmacomments = \"".gettemplate("karma_usercpnocomments")."\";");

if I altered this line

PHP Code:
$karmas=$DB_site->query("SELECT karma.postid as postid,karmapos,karmaneg,reason,post.threadid as threadid,post.dateline as dateline,thread.title as title FROM karma LEFT JOIN post ON karma.postid=post.postid LEFT JOIN thread ON post.threadid=thread.threadid WHERE karma.userid='$bbuserinfo[userid]' ORDER BY timestamp DESC LIMIT 0,5"); 
to this

PHP Code:
$karmas=$DB_site->query("SELECT karma.postid as postid,karmapos,karmaneg,reason,post.threadid as threadid,post.dateline as dateline,thread.title as title,whoadded FROM karma LEFT JOIN post ON karma.postid=post.postid LEFT JOIN thread ON post.threadid=thread.threadid WHERE karma.userid='$bbuserinfo[userid]' ORDER BY timestamp DESC LIMIT 0,5"); 
this would return the

$karmas[whoadded] who return the array
$karma[whoadded] who return the id's one by one in the while loop

What if I wanted to return the username of the user.

I would have to do something like

PHP Code:
$DB_site->query("SELECT username FROM user WHERE userid=$karmas[whoadded]); 
hoo would I link these two queries together so in the while loop I can call

$karma[whoadded] = userid
$karma[username] = username

I hope I have explained this, can anyone help please ?

Am I right I can do this using 2 queries ?
Reply With Quote
Reply


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 08:01 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.05689 seconds
  • Memory Usage 2,236KB
  • 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
  • (4)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