2016-12-18 13 views
0

URLこの機能では、URLは、応答がそれは与え、

public function getCouponDetail($user_id, $couponCode){ 
    try { 
     $sql = "SELECT order_id FROM table_orders O INNER JOIN table_customers C on C.customer_id = O.customer_id WHERE O.coupon_code = :couponCode AND C.customer_id = :customerId"; 
     $stmt = $this->db->prepare($sql); 
     $stmt->bindParam("couponCode", $couponCode); 
     $stmt->bindParam("customerId", $user_id); 
     $stmt->execute(); 
     $result = $stmt->rowCount(); 
     if ($result != 0){ 
      $result = $stmt->fetchAll(PDO::FETCH_OBJ); 
     } 
     elseif ($result == 0) { 
      $result = array(); 
     } 
     return $result; 
    } 
    catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 
} 

から関数を呼び出すPHP

$app->post('/validate_coupon', 'authenticate', function() use ($app) { 

    global $user_id; 
    $response = array(); 
    verifyRequiredParams(array('couponcode')); 

    $couponcode = $app->request->post('couponcode'); 


    $db = new DbHandler(); 

     if($data = $db->getCouponDetail($user_id, $couponcode)){ 
      $response['error'] = false; 
      $response['message'] = "Query successful."; 
      $response['data'] = $data; 
      echoRespnse(200, $response); 
     } 
     else{ 
      $response['error'] = true; 
      $response['message'] = "Unknown error occured while fetching coupon detail."; 
      echoRespnse(200, $response); 
     } 

}); 

にPHPで適切ではありませんこのように。

{ 
    "error": false, 
    "message": "Query successful.", 
    "data": [ 
    { 
     "order_id": "2183" 
    } 
    ] 
} 

しかし、結果の行数が0であれば、私は

{ 
    "error": false, 
    "message": "Query successful.", 
    "data": [ 
    { 
     "order_id": "0" 
    } 
    ] 
} 

iは関数を呼び出すには何を変更する必要がありますしたい

{ 
    "error": true, 
    "message": "Unknown error occured while fetching coupon detail." 
} 

を得ましたか。

答えて

2

if ([])空配列の場合ということは、あなたがメッセージをしたい場合は、あなたがあなたの代わりに空の配列を、ここで同じものを返す必要が言ったように、あなたが他のメッセージ

を得ている理由です常にfalse

if ($result != 0){ 
      $result = $stmt->fetchAll(PDO::FETCH_OBJ); 
     } 
     elseif ($result == 0) { 
      $result = ['order_id' => 0]; 
     } 
関連する問題