Ошибка "Warning: Invalid argument supplied for foreach() on line 22" может быть вызвана неправильным использованием функции DATE_FORMAT или неправильным форматом даты.
Первое, что необходимо проверить, это правильность использования функции DATE_FORMAT. Функция DATE_FORMAT предназначена для форматирования даты в определенном формате. Она принимает два аргумента: дату, которую нужно отформатировать, и строку с указанием формата. Например, DATE_FORMAT(date_column, '%d-%m-%Y') будет форматировать дату в виде "день-месяц-год".
Если вы используете DATE_FORMAT внутри цикла foreach, возможно, вы совершаете ошибку. Цикл foreach предназначен для итерации по массиву, и если вы пытаетесь передать в него функцию DATE_FORMAT, то, скорее всего, вам нужно использовать цикл foreach для итерации по массиву с датами, а затем применить функцию DATE_FORMAT к каждой дате отдельно.
Проверьте свой код, чтобы убедиться, что правильно используете функцию DATE_FORMAT и правильно проходитесь по массиву с датами. Если у вас остаются трудности, пожалуйста, предоставьте свой код, чтобы мы могли помочь вам исправить ошибку более конкретно.