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

Reply
 
Thread Tools Display Modes
  #1  
Old 04-01-2013, 02:24 PM
vBNinja's Avatar
vBNinja vBNinja is offline
 
Join Date: May 2011
Location: USA
Posts: 239
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help with saving sql query results

Fixed post.....
Reply With Quote
  #2  
Old 04-01-2013, 07:07 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You could do something like this:

Code:
$result = $vbulletin->db->query("SELECT userfield.fieldX, userfield.userid FROM userfield INNER JOIN user ON user.userid =userfield.userid WHERE usergroupid IN (list_of_usergroups)");

$rendered_table = '<table>';
while ($row = $vbulletin->db->fetch_array($result))
{
   $rendered_table .= '<tr><td>' . $row['userid'] . '</td><td>' . $row['fieldX'] . '</td></tr>';
}
$rendered_table .= '</table>';

vB_Template::preRegister('template_name', array('rendered_table' => $rendered_table));

then use {vb raw rendered_table} in the template. (This assumes you want to put it in an existing template. If you're creating your own template then you'd probably use register() instead of preRegister()).

Quote:
Originally Posted by vBNinja View Post
Also once i get that working, i would normally use a foreach loop and build the table with "echo" but since i'm trying to integrate this to a vbulletin page, should i just concatenate the html in the php file and render it as a variable to use in a vb template then simply use it like: "{vb raw rendered_table}" or is there a more efficient way of doing this?

That's what the above example does, and there's no problem doing it that way. But I should mention that the convention in the vbulletin code is to put any html in a template and render the template. You could have a template for one table row, or you can save all the rows to an array and then use <vb:each> in the template to loop through them.
Reply With Quote
  #3  
Old 04-02-2013, 03:04 AM
vBNinja's Avatar
vBNinja vBNinja is offline
 
Join Date: May 2011
Location: USA
Posts: 239
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
You could do something like this:

Code:
$result = $vbulletin->db->query("SELECT userfield.fieldX, userfield.userid FROM userfield INNER JOIN user ON user.userid =userfield.userid WHERE usergroupid IN (list_of_usergroups)");

$rendered_table = '<table>';
while ($row = $vbulletin->db->fetch_array($result))
{
   $rendered_table .= '<tr><td>' . $row['userid'] . '</td><td>' . $row['fieldX'] . '</td></tr>';
}
$rendered_table .= '</table>';

vB_Template::preRegister('template_name', array('rendered_table' => $rendered_table));

then use {vb raw rendered_table} in the template. (This assumes you want to put it in an existing template. If you're creating your own template then you'd probably use register() instead of preRegister()).




That's what the above example does, and there's no problem doing it that way. But I should mention that the convention in the vbulletin code is to put any html in a template and render the template. You could have a template for one table row, or you can save all the rows to an array and then use <vb:each> in the template to loop through them.
Awesome thanks! the code worked perfectly

My mod reads an external XML API file that retrieves values to use for the table i mentioned. But it's pretty intensive, generating the table for 5 test users currently takes ~30 seconds. So what i was thinking was to use a cron job that runs every 10 or 15 minutes with a script that opens the API, saves the values in the database (i've already managed to do this ) so that when the actual script (mymod.php) is requested, it just has to read and output the values that were already saved in the database instead of having to run the API. What i need help with is caching the to make it run faster.

Thanks again!
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 02:05 PM.


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.03492 seconds
  • Memory Usage 2,185KB
  • Queries Executed 13 (?)
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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (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_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • 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
  • 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