vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   How to combine 2 queries into one datastore (https://vborg.vbsupport.ru/showthread.php?t=230597)

Quantnet 12-20-2009 02:17 AM

How to combine 2 queries into one datastore
 
I have this script in /cron that will query the database and update the datastore
Code:

<?php

if (!is_object($vbulletin->db)) {
        exit;
} else {
        $db = &$vbulletin->db;
}

$totalapps    = 0;
$programstats = array();

$appresult = $db->query_read("
        SELECT programid
            , COUNT(*) AS apps
          FROM " . TABLE_PREFIX . "application
        GROUP
            BY programid
");


while ($program = $db->fetch_array($appresult)) {
        $totalapps += $program['apps'];
        $programstats[$program['programid']] = $program['apps'];
}

build_datastore(
        'appstats',
        serialize(array('total' => $totalapps, 'programs' => $programstats)),
        true
);

I'd like to extend the query and datastore a bit by adding another query
Code:

$avgtime = $db->query_read("
        SELECT programid,
        ceil(avg((resultdate-datesubmitted)/86400)) as average
          FROM application
        where finalresult ="Admit" OR
              finalresult ="Reject" AND
              resultdate > 0
              group by programid
");

Would anyone kindly advise me on how to put this extra query in the existing script and update the datastore so I can call the extra variables?

Thanks a lot

Quantnet 12-21-2009 03:59 AM

Can anyone help?
Thanks

Adrian Schneider 12-21-2009 06:17 AM

Hey, still playing catch up on the emails. :(

This should do it:
PHP Code:

<?php

if (!is_object($vbulletin->db)) {
        exit;
} else {
        
$db = &$vbulletin->db;
}

$totalapps    0;
$averages     = array();
$programstats = array();

$appresult $db->query_read("
        SELECT programid
             , COUNT(*) AS apps
          FROM " 
TABLE_PREFIX "application
        GROUP
            BY programid
"
);

while (
$program $db->fetch_array($appresult)) {
        
$totalapps += $program['apps'];
        
$programstats[$program['programid']] = $program['apps'];
}

$avgtime $db->query_read("
        SELECT programid,
        ceil(avg((resultdate-datesubmitted)/86400)) as average
          FROM application
         where finalresult ="
Admit" OR
               finalresult ="
Reject" AND
               resultdate > 0
               group by programid
"
);

while (
$program $db->fetch_array($avgtime)) {
    
$averages[$program['programid']] = $program['average'];
}

build_datastore(
        
'appstats',
        
serialize(array('total' => $totalapps'programs' => $programstats'averages' => $averages)),
        
true
);

Cheers

Quantnet 12-22-2009 03:40 AM

Thanks for your help, Adrian. There is no better person to answer this than you ;)


All times are GMT. The time now is 11:17 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.00926 seconds
  • Memory Usage 1,730KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete