Ошибка, которую вы получаете, связана с тем, что значения, которые вы передаете в SQL-запрос, не в правильном формате даты. В SQL, для сравнения дат необходимо использовать правильные форматы, например, 'YYYY-MM-DD'.
Вот несколько шагов, которые помогут вам исправить проблему:
1. **Форматирование дат**: Убедитесь, что переменные `$munth_start` и `$munth_end` содержат даты в формате 'YYYY-MM-DD'. Например, если вы хотите выбрать данные с 1 января 2023 года по 31 января 2023 года, то вы должны задать:
```php
$munth_start = '2023-01-01';
$munth_end = '2023-01-31';
```
2. **Изменение SQL-запроса**: Используйте правильные значения в запросе. Ваш SQL-запрос должен выглядеть следующим образом:
```sql
SELECT * FROM zakaz WHERE date BETWEEN '$munth_start' AND '$munth_end'
```
Обратите внимание на одинарные кавычки вокруг переменных для правильной передачи значений в SQL.
3. **Проверка данных в базе**: Убедитесь, что в таблице `zakaz` действительно есть записи с датами в указанном диапазоне. Вы можете выполнить простой запрос, чтобы проверить это:
```sql
SELECT * FROM zakaz WHERE date < '2023-02-01';
```
4. **Escaping и защита от SQL-инъекций**: Для безопасности всегда используйте подготовленные выражения или функции экранирования при работе с пользовательскими данными:
```php
$stmt = $pdo->prepare("SELECT * FROM zakaz WHERE date BETWEEN :start AND :end");
$stmt->execute(['start' => $munth_start, 'end' => $munth_end]);
$results = $stmt->fetchAll();
```
Следуя этим шагам, вы сможете правильно извлекать данные из базы данных за определенный диапазон дат и избежать предупреждений и ошибок, связанных с неправильным форматом даты.