"Неустранимая ошибка: невозможно использовать позиционный аргумент после распаковки аргумента"
Ниже приведен мой код, который я попробовал:
Код: Выделить всё
$EMP_CODE = $_GET['EMP_CODE'];
$FROM_DATE = $_GET['FROM_DATE'];
$TO_DATE = $_GET['TO_DATE'];
// Split EMP_CODE into an array of employee codes
$emp_codes = explode(",", $EMP_CODE);
// Prepare placeholders for the IN clause dynamically
$placeholders = implode(",", array_fill(0, count($emp_codes), "?"));
// SQL query to get the EMP_CODE, DATE, and PUNCH_DATETIME for each punch
$stmt = $conn->prepare(
"SELECT emp_code, DATE(punch_time) AS date, punch_time AS punch_datetime
FROM iclock_transaction
WHERE emp_code IN ($placeholders)
AND DATE(punch_time) BETWEEN ? AND ?
ORDER BY emp_code, date, punch_time"
);
// Bind parameters (EMP_CODE values, FROM_DATE, and TO_DATE)
$stmt->bind_param(str_repeat("s", count($emp_codes)) . "ss", ...$emp_codes, $FROM_DATE, $TO_DATE);
// Execute query
$stmt->execute();
$result = $stmt->get_result();
// Initialize a structure to group results by EMP_CODE
$emp_data = array();
// Fetch results and organize them by EMP_CODE and DATE
while ($row = $result->fetch_assoc()) {
$emp_code = $row['emp_code'];
$date = $row['date'];
$punch_datetime = $row['punch_datetime'];
// If EMP_CODE not in $emp_data, initialize it
if (!isset($emp_data[$emp_code])) {
$emp_data[$emp_code] = array();
}
// If DATE not in $emp_data[EMP_CODE], initialize it
if (!isset($emp_data[$emp_code][$date])) {
$emp_data[$emp_code][$date] = array();
}
// Append PUNCH_DATETIME to the specific EMP_CODE and DATE
$emp_data[$emp_code][$date][] = $punch_datetime;
}
// Structure the response in the required JSON format
foreach ($emp_data as $emp_code => $dates) {
$emp_entry = array("EMP_CODE" => $emp_code, "DATES" => array());
foreach ($dates as $date => $punch_times) {
$emp_entry["DATES"][] = array(
"DATE" => $date,
"PUNCH_DATETIME" => $punch_times
);
}
$response[] = $emp_entry;
}
// Output the response as JSON
echo json_encode($response);
Выдает «Неустранимая ошибка: невозможно использовать позиционный аргумент после распаковки аргумента» на работающем сервере (работает Wamp)
Подробнее здесь: https://stackoverflow.com/questions/791 ... -unpacking
Мобильная версия