-while (list($lvl, $per) = SQL_FETCHROW($result_depths))
-{
- // Initialize ref-count
- $REFS = "0";
-
- // Load referral points
- $result_points = SQL_QUERY_ESC("SELECT points, locked_points FROM "._MYSQL_PREFIX."_user_points WHERE userid=%d AND ref_depth='%s' LIMIT 1", array($GLOBALS['userid'], bigintval($lvl)), __FILE__, __LINE__);
- if (SQL_NUMROWS($result_points) == 1)
- {
- list($POINTS, $LOCKED) = SQL_FETCHROW($result_points);
- SQL_FREERESULT($result_points);
- // Also count locked points
- $TPTS += $POINTS; $TLOCK += $LOCKED;
- }
- else
- {
- $POINTS = "0.00000"; $LOCKED = "0.00000";
- }
-
- // Load referral counts
- $result_refs = SQL_QUERY_ESC("SELECT counter FROM "._MYSQL_PREFIX."_refsystem WHERE userid=%d AND level='%s' LIMIT 1", array($GLOBALS['userid'], bigintval($lvl)), __FILE__, __LINE__);
- if (SQL_NUMROWS($result_refs) == 1)
- {
- list($REFS) = SQL_FETCHROW($result_refs);
- SQL_FREERESULT($result_refs);
- $TREF += $REFS;
- }
- else
- {
- $REFS = "0";
- }
-
- // Transfer data to array for template
- $content = array(
- 'lvl' => $lvl,
- 'per' => $per,
- 'points' => TRANSLATE_COMMA($POINTS),
- 'refs' => $REFS,
- );
+while ($data = SQL_FETCHARRAY($result_depths)) {
+ // Init points and counter here
+ $content['counter'] = '0';
+ $content['points'] = '0.00000';
+ $content['order_points'] = '0.00000';
+ $content['locked_points'] = '0.00000';
+ $content['locked_order_points'] = '0.00000';
+
+ // Merge it together
+ $content = merge_array($content, $data);
+
+ // Default for referal level > 0
+ $depth = 'p.`ref_depth`=%s';
+ if (is_null($content['level'])) {
+ $depth = 'p.`ref_depth` IS NULL';
+ } // END - if
+
+ // Load referal points
+ $result_points = SQL_QUERY_ESC("SELECT
+ p.`points`,
+ p.`order_points`,
+ p.`locked_points`,
+ p.`locked_order_points`,
+ r.`counter`
+FROM
+ `{?_MYSQL_PREFIX?}_user_points` AS p
+LEFT JOIN
+ `{?_MYSQL_PREFIX?}_refsystem` AS r
+ON
+ p.`userid`=r.`userid` AND
+ p.`ref_depth`=r.`level`
+WHERE
+ p.`userid`=%s AND
+ ".$depth."
+LIMIT 1",
+ array(
+ getMemberId(),
+ makeZeroToNull($content['level'])
+ ), __FILE__, __LINE__);
+
+ // Do we have an entry?
+ if (SQL_NUMROWS($result_points) == 1) {
+ // Load data
+ $content = merge_array($content, SQL_FETCHARRAY($result_points));
+
+ // Add all entries
+ $content['part_points'] += $content['points'];
+ $content['part_order'] += $content['order_points'];
+ $content['part_locked'] += $content['locked_points'];
+ $content['part_locked_order'] += $content['locked_order_points'];
+ $content['part_referals'] += $content['counter'];
+ } // END - if
+
+ // Free result
+ SQL_FREERESULT($result_points);