vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   [SQL] - adding the SUM in an array (https://vborg.vbsupport.ru/showthread.php?t=327991)

Dr.CustUmz 05-06-2020 03:55 AM

[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

shka 05-06-2020 05:34 AM

Quote:

Originally Posted by Dr.CustUmz (Post 2602812)
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 (Post 2602812)
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;



All times are GMT. The time now is 04:54 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.01079 seconds
  • Memory Usage 1,725KB
  • 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
  • (1)bbcode_code_printable
  • (3)bbcode_php_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (2)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