Я создал функцию с этим запросом mysqli, но по какой-то причине она не печатает желаемый результат в php-скрипте.
Что я делаю не так?
SELECT COUNT(*)
FROM (
SELECT id
FROM personal WHERE structure = ?
WHERE id IN
(SELECT id FROM presence WHERE service = 'shift1' AND year = ? AND month = ? AND day = ? )
AND id IN
(SELECT id FROM qualification WHERE idqualification = '1' or idqualification = '2')
ORDER BY RAND()
) t
GROUP BY t.id
обновление: это моя функция. Он должен найти людей, работающих в течение дня, имеющих эти квалификации, и подсчитать их
function presence_by_qualification($structure, $day, $month, $year)
{
global $connection;
$stmt = $connection->prepare("SELECT COUNT(*)
FROM (
SELECT id
FROM personal WHERE structure = ?
WHERE id IN
(SELECT id FROM presence WHERE service = 'shift1' AND year = ? AND month = ? AND day = ? )
AND id IN
(SELECT id FROM qualification WHERE idqualification = '1' or idqualification = '2')
ORDER BY RAND()
) t
GROUP BY t.id");
$stmt->bind_param('ssss', $structure, $day, $month, $year);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($counts);
results = $stmt -> fetch();
return $results;
}
Я сохраняю результат в массиве, чтобы я мог их посчитать.
$presencebyqualif[] = presence_by_qualification($structure, $day, $month, $year);
Я использую это так:
$structure = "1029";
$day = "01";
$month = "05";
$year = "2019";
Они все переменные. Он должен показывать подсчитанное количество людей в смену, имеющих эти конкретные квалификации.