Undefined index when fetching database records

0

I created a code that causes you to select all% of the database%, calculate and a result.

function updating_exp($con) {

    global $con; 

    $stmt = $con->prepare("SELECT SUM(reward_qty) AS total_earned FROM public_rewards WHERE client_id = ? AND reward_type = 'exp' LIMIT 0, 12");
    $stmt->bind_param('s', $_SESSION['u_id']);
    $stmt->execute();
    $stmt->bind_result($uid);
    $stmt->store_result();     

    $reward_exp = 15;   

    if(public_user_general_data($con) == true) {

        return false;

    } else {

        if(public_user_level_data($con, $reach_level = 2)) {

            if($stmt->num_rows > 0) {     

                while($results = $stmt->fetch()) {

                    $percentages = $results['total_earned'];         

                    //echo "<script>alert('$percentages');</script>"; 

                    $total = ($percentages / 100) * $reward_exp;
                    $receive = $reward_exp + round($total);

                    //echo "<script>alert('p $percentage -  r $reward_exp -  t $total / $receive');</script>";   
                    exp_user_data($con, $receive);                    
                }

            } else {
                exp_user_data($con, $reward_exp); 
            }  

        } else {
            exp_user_data($con, $reward_exp);
        }     
    }     
}

But it's error

 Notice: Undefined index: total_earned in D:\xampp\htdocs\Superfacil_v1.4\inc\functions.php on line 586
    
asked by anonymous 17.10.2018 / 03:17

1 answer

0

The total_earned index has not been defined. Make sure the field name in your db table is equal to 'reward_qty'.

try changing the stmt to

$stmt = $con->prepare("SELECT SUM(reward_qty) AS total_earned FROM public_rewards WHERE client_id = :uid AND reward_type = 'exp' LIMIT 0, 12");
  $stmt->bindParam('uid', $_SESSION['u_id'], PDO::PARAM_INT);
  $stmt->execute();
  $stmt->bind_result($uid);
  $stmt->store_result(); 
    
17.10.2018 / 13:00