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 05-06-2020, 03:55 AM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default [SQL] - adding the SUM in an array

So I am pulling data from my table like this:

PHP Code:
$data $db->query_read ("SELECT * FROM " TABLE_PREFIX "someTable WHERE userid=" intval ($vbulletin->userinfo['userid']));
while (
$var $db->fetch_array ($data)) {
  
$var $data;

So: $var[row] is usable in my templates (and that is all working fine)

The issue is this table stores multiple entries per userid, thus only displaying the latest table entry as the results in templates. I want to add each entry together, that way when I use the $var[row] in my template it gives a TOTAL rather than the latest entry.

Now I know I can do this with the following method:
PHP Code:
$var $vbulletin->db->query_first("SELECT SUM(row) AS total FROM " TABLE_PREFIX "table WHERE userid = " $vbulletin->userinfo['userid']); 
Then use $var[total] but I have to do this for almost every row on the table and feel (if possible) it would be better to do this as an array.

Anyone want to help me out with this.

Example of my table:

userid__row___row2__row3___row4
1______1_____3____3.00_____4
1______1_____2____2.00_____3
2______1_____5____5.00_____6
1______1_____3____3.00_____4
2______1_____3____3.00_____4

So my goal $vars would return the following results in templates (for userid 1)

$var[row] = 3
$var[row2] = 8
$var[row3] = 8.00
$var[row4] = 11
Reply With Quote
  #2  
Old 05-06-2020, 05:34 AM
shka shka is offline
 
Join Date: Mar 2016
Posts: 79
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dr.CustUmz View Post
So I am pulling data from my table like this:

PHP Code:
$data $db->query_read ("SELECT * FROM " TABLE_PREFIX "someTable WHERE userid=" intval ($vbulletin->userinfo['userid']));
while (
$var $db->fetch_array ($data)) {
  
$var $data;

First: Don't use "select *". You should query only columns you need. You (and readers of your code) have more control over data flow and will thank it later.
SELECT userid, row, row2, row3, row4 FROM...

Second: I don't have vB3, but isn't there an fetch_all? You don't need to read the data line by line.


Quote:
Originally Posted by Dr.CustUmz View Post
Anyone want to help me out with this.

Example of my table:

userid__row___row2__row3___row4
1______1_____3____3.00_____4
1______1_____2____2.00_____3
2______1_____5____5.00_____6
1______1_____3____3.00_____4
2______1_____3____3.00_____4

So my goal $vars would return the following results in templates (for userid 1)

$var[row] = 3
$var[row2] = 8
$var[row3] = 8.00
$var[row4] = 11
If I understood correct GROUP BY combined with SUM should be your friend

Code:
SELECT 
    userid,
    SUM(row) AS row_sum,
    SUM(row2) AS row2_sum,
    SUM(row3) AS row3_sum,
    SUM(row4) AS row4_sum
FROM 
    " . TABLE_PREFIX . "someTable 
GROUP BY
    userid;
Reply With Quote
Благодарность от:
Dr.CustUmz
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 10:51 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.04100 seconds
  • Memory Usage 2,188KB
  • 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
  • (1)bbcode_code
  • (3)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (1)post_thanks_box_bit
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete