2017-08-16 108 views
0

所以基本上,我有一个函数getPayments()。这个函数应该执行一个查询,从多个表中选择(加入)。这是我的代码返回语句不返回任何东西

function getPayments($userid, $schoolyear) { 
    $stmt = $this->con->prepare("SELECT tbl_payment.payment_receipt_type AS RType, tbl_payment.payment_receipt_number AS RNumber, tbl_feetype.feetype_name AS FName, tbl_payment.payment_amount AS PAmount, tbl_month.month_date AS MDate, tbl_payment.payment_dateadded AS PAdded 
FROM tbl_payment 
    INNER JOIN tbl_student ON tbl_student.student_id = tbl_payment.student_id 
    INNER JOIN tbl_schoolyear ON tbl_schoolyear.schoolyear_id = tbl_payment.schoolyear_id 
    INNER JOIN tbl_feetype ON tbl_feetype.feetype_id = tbl_payment.feetype_id 
    INNER JOIN tbl_month ON tbl_month.month_id = tbl_payment.month_id 
    WHERE tbl_payment.schoolyear_id = ? AND tbl_payment.student_id = ? ORDER BY payment_dateadded DESC"); 

    $stmt->bind_param("ss", $userid, $schoolyear); 
    $stmt->execute(); 
    $stmt->bind_result($RType, $RNumber, $FName, $PAmount, $MDate, $PAdded); 

    $payments = array(); 

    while ($stmt->fetch()) { 
     $temp = array(); 

     $temp['paymenttype'] = $RType; 
     $temp['receiptnumber'] = $RNumber; 
     $temp['feename'] = $FName; 
     $temp['paymentamount'] = $PAmount; 
     $temp['monthname'] = $MDate; 
     $temp['paymentdate'] = $PAdded; 

     array_push($payments, $temp); 
    } 

    return $payments; 
} 

以我index.php文件:

//getting payment details for a user 
$app->get('/payment/{id}/{sy}', function (Request $request, Response $response) { 
$route = $request->getAttribute('route'); 
// $userid = $request->getAttribute('id'); 
$userid = $route->getArgument('id'); 
$schoolyear = $route->getArgument('sy'); 
    // $schoolyear = $request->getAttribute('sy'); 
    $db = new DbOperation(); 
    $payments = $db->getPayments($userid, $schoolyear); 
    $response->getBody()->write(json_encode(array("payments" => $payments))); 
}); 

^这行代码会从getPayment()函数返回的数组结果然后将其编码为JSON。

的问题是,在邮差测试我的API后,邮差只给了我这样的结果

{"payments":[]} 

请帮助我。谢谢。 (对不起,我的英语不好)

+0

你能确保你的MySQL查询返回结果吗? – Ice76

+0

@ Ice76是的,在phpmyadmin中试过这个查询,它返回结果。 – WeShallCode

回答

-1

找到答案。 我错位了一些变量。

行应写为$stmt->bind_param("ss", $schoolyear, $userid);

一切正在工作。谢谢。 :)

此线程现已关闭。