оператор return ничего не возвращает

В общем, у меня есть функция 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

Решение

Найти ответ.
Я ошибаюсь некоторые переменные.

Линия $stmt->bind_param("ss", $userid, $schoolyear); должно быть написано как $stmt->bind_param("ss", $schoolyear, $userid); ,

Все работает сейчас. Спасибо. 🙂

Эта тема сейчас закрыта.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector