Before this post is closed or I'm refered to an existing ref for this issue, here's a list of documentation I've referenced & other threads I've reviewed for this. I know I'm missing something glaring simple but I can not for the life of me see what's in front of me. I really am at my wits end right now
As I'm only allowed to post 2 links at a time currently, so I've chosen the first two that stress, I've looked this up!
http://www.artfulsoftware.com/infotree/tip.php?id=799&r=1 Commands out of sync; you can't run this command now
Before 1st query on 1st set
object(mysqli)#1 (18) {
  ["affected_rows"]=>
  int(-1)
  ["client_info"]=>
  string(6) "5.5.52"
  ["client_version"]=>
  int(50552)
  ["connect_errno"]=>
  int(0)
  ["connect_error"]=>
  NULL
  ["errno"]=>
  int(0)
  ["error"]=>
  string(0) ""
  ["field_count"]=>
  int(2)
  ["host_info"]=>
  string(25) "Localhost via UNIX socket"
  ["info"]=>
  NULL
  ["insert_id"]=>
  int(0)
  ["server_info"]=>
  string(23) "5.5.43-0ubuntu0.12.04.1"
  ["server_version"]=>
  int(50543)
  ["stat"]=>
  string(147) "Uptime: 4702713  Threads: 3  Questions: 19875140  Slow queries: 504  Opens: 30587  Flush tables: 1  Open tables: 128  Queries per second avg: 4.226"
  ["sqlstate"]=>
  string(5) "00000"
  ["protocol_version"]=>
  int(10)
  ["thread_id"]=>
  int(1143580)
  ["warning_count"]=>
  int(0)
}
After 1st query on 1st set
object(mysqli)#1 (18) {
  ["affected_rows"]=>
  int(10)
  ["client_info"]=>
  string(6) "5.5.52"
  ["client_version"]=>
  int(50552)
  ["connect_errno"]=>
  int(0)
  ["connect_error"]=>
  NULL
  ["errno"]=>
  int(0)
  ["error"]=>
  string(0) ""
  ["field_count"]=>
  int(2)
  ["host_info"]=>
  string(25) "Localhost via UNIX socket"
  ["info"]=>
  NULL
  ["insert_id"]=>
  int(0)
  ["server_info"]=>
  string(23) "5.5.43-0ubuntu0.12.04.1"
  ["server_version"]=>
  int(50543)
  ["stat"]=>
  string(52) "Commands out of sync; you can't run this command now"
  ["sqlstate"]=>
  string(5) "HY000"
  ["protocol_version"]=>
  int(10)
  ["thread_id"]=>
  int(1143586)
  ["warning_count"]=>
  int(0)
}
Before 2nd query on 2nd set
object(mysqli)#1 (18) {
  ["affected_rows"]=>
  int(0)
  ["client_info"]=>
  string(6) "5.5.52"
  ["client_version"]=>
  int(50552)
  ["connect_errno"]=>
  int(0)
  ["connect_error"]=>
  NULL
  ["errno"]=>
  int(2014)
  ["error"]=>
  string(52) "Commands out of sync; you can't run this command now"
  ["field_count"]=>
  int(2)
  ["host_info"]=>
  string(25) "Localhost via UNIX socket"
  ["info"]=>
  NULL
  ["insert_id"]=>
  int(0)
  ["server_info"]=>
  string(23) "5.5.43-0ubuntu0.12.04.1"
  ["server_version"]=>
  int(50543)
  ["stat"]=>
  string(52) "Commands out of sync; you can't run this command now"
  ["sqlstate"]=>
  string(5) "HY000"
  ["protocol_version"]=>
  int(10)
  ["thread_id"]=>
  int(1143613)
  ["warning_count"]=>
  int(0)
}
After 2nd query on 2nd set
object(mysqli)#1 (18) {
  ["affected_rows"]=>
  int(0)
  ["client_info"]=>
  string(6) "5.5.52"
  ["client_version"]=>
  int(50552)
  ["connect_errno"]=>
  int(0)
  ["connect_error"]=>
  NULL
  ["errno"]=>
  int(2014)
  ["error"]=>
  string(52) "Commands out of sync; you can't run this command now"
  ["field_count"]=>
  int(2)
  ["host_info"]=>
  string(25) "Localhost via UNIX socket"
  ["info"]=>
  NULL
  ["insert_id"]=>
  int(0)
  ["server_info"]=>
  string(23) "5.5.43-0ubuntu0.12.04.1"
  ["server_version"]=>
  int(50543)
  ["stat"]=>
  string(52) "Commands out of sync; you can't run this command now"
  ["sqlstate"]=>
  string(5) "HY000"
  ["protocol_version"]=>
  int(10)
  ["thread_id"]=>
  int(1143626)
  ["warning_count"]=>
  int(0)
}
An example result set that outputs from my queries, there are generally 8 per Eng, but thought it best to shorten it
Array
(
    [1st Set] => Array
        (
            [Eng1] => Array
                (
                    [Live] => 24
                    [Score] => 47
                    [Res] => 102
                )
            [Eng2] => Array
                (
                    [Live] => 22
                    [Score] => 39
                    [Res] => 79
                )
            [Eng3] => Array
                (
                    [Live] => 24
                    [Score] => 33
                    [Res] => 54
                )
            [Eng4] => Array
                (
                    [Live] => 11
                    [Score] => 31
                    [Res] => 46
                )
            [Eng5] => Array
                (
                    [Live] => 10
                    [Score] => 25
                    [Res] => 51
                )
        )
    [2nd Set] => 
)
storedproc in question -
CREATE DEFINER=`chris_test`@`%` PROCEDURE `countSingleStat`(
    IN statTableLoc VARCHAR(20),
    IN statCountLoc VARCHAR(20),
    IN statIDLoc VARCHAR(20),
    IN teamID INT(2),
    IN singleTeam INT(1),
    IN rangeStart DATE,
    IN rangeEnd  DATE,
    IN dateRequired INT(1),
    IN dataHandling INT(1))
countStat:BEGIN
    -- Set passed attributes as uservar so these can be used with concat
    SET @statTableLoc = statTableLoc;
    SET @statCountLoc = statCountLoc;
    SET @statIDLoc = statIDLoc;
    SET @rangeStart = rangeStart;
    SET @rangeEnd = rangeEnd;
    SET @teamID = teamID; -- Excluding or requesting a specific team
    -- Example completed query
    -- SELECT e.displayname, SUM(r.sessions) AS totalres FROM rescue r JOIN engineers e ON e.id=r.engid
    -- WHERE r.date BETWEEN '2017-01-06' AND '2017-01-07'
    -- AND NOT e.id=0
    -- GROUP BY e.id
    -- ORDER BY totalres DES
    -- start of query required to find single stat
    -- datahandling specifies how the data is being present, currently only string & sum listed
    CASE dataHandling
        WHEN 0 THEN
            SET @qry = concat('SELECT e.displayname, ', @statTableLoc ,'.', @statCountLoc ,' AS string');
        WHEN 1 THEN
            SET @qry = concat('SELECT e.displayname, sum(', @statTableLoc ,'.', @statCountLoc ,') AS total');
    END CASE;
    -- Is a date start/end required for query.
    CASE dateRequired
        WHEN 0 THEN
            SET @qry = concat(@qry,' FROM ', @statTableLoc ,' JOIN engineers e ON e.id=', @statTableLoc ,'.engid WHERE');
        WHEN 1 THEN
            SET @qry = concat(@qry,' FROM ', @statTableLoc ,' JOIN engineers e ON e.id=', @statTableLoc ,'.engid WHERE ', @statTableLoc ,'.date BETWEEN \'', @rangeStart ,'\' AND \'', @rangeEnd ,'\' AND');
    END CASE;
    -- Has a single team been requested or a team been excluded from results
    CASE singleTeam
        WHEN 0 THEN
            SET @qry = concat(@qry,' NOT e.teamid=', @teamID ,' GROUP BY e.id ORDER BY');
        WHEN 1 THEN
            SET @qry = concat(@qry,' e.teamid=', @teamID ,' GROUP BY e.id ORDER BY');
    END CASE;
    CASE dataHandling
        WHEN 0 THEN
            SET @qry = concat(@qry,' string DESC');
        WHEN 1 THEN 
            SET @qry = concat(@qry,' total DESC');
    END CASE;
    PREPARE statsCount FROM @qry;
    EXECUTE statsCount;
    DROP PREPARE statsCount;
END
PHP(5) in question -
// Set query for specifed stat & it's assoicated settings.  Request between specific dates if required
$qry = "CALL SingleStat('". $statsTable ."','". $statsRequired ."','". $statTableEngID ."',". $teamID .",". $excludeORinclude .",'". $dateRangeStart ."','". $dateRangeEnd ."',". $dateRequired .",". $dataHandling .")";
try 
{   // run query
    $result = $db->query($qry);
    echo $db->error;
} 
catch (Exception $e) 
{
    echo $db->error;
    vardumpCount($e);       
}
// do we have results?
if($result->num_rows > 0)
{
    // loop through results
    while ($resultsArray = $result->fetch_assoc())
    {   
        /* LOTS OF CODE GOES HERE */
    }
    #####
     // do we have any results remaining to be processed. 
     if ($db->next_result()) 
     {
        if ($results = $db->use_result()) 
        {
            while ($row = $result->fetch_assoc()) 
            {
                echo "<pre>";
                print_r($row);
                echo "</pre>";
                echo "</br>-----------</br></br>";
            }
        }
     }
    #####
    return $engStatArray;
}
 
    