Страница 1 из 1

Database Error: 1052 - Column 'date_added' in where clause is ambiguous

Добавлено: 04 окт 2024, 13:21
alcompstudio
Добрый день!

Возникла ошибка, что может быть причиной (никаких действий не выполнялось, процессы, формулы, функции работали в штатном режиме? Внезапно возникла ошибка (просто выполнилось стандартное действие добавления записи)
DB_ERR_1052.jpg

Re: Database Error: 1052 - Column 'date_added' in where clause is ambiguous

Добавлено: 04 окт 2024, 14:03
alcompstudio
В общем, методом тыка нашел отчет в верхнем меню, в котором был настроен фильтр по полю (системному) Дата добавления. Если убрать это поле, то ошибка исчезает (в поле даже просто условие поставить "Фильтр по месяцам: 0
"). Что может быть не так с данным полем? Внезапно без каких-то причин "слетело"...
DB_ERR_1052-2.jpg

Re: Database Error: 1052 - Column 'date_added' in where clause is ambiguous

Добавлено: 06 окт 2024, 17:55
support
Нашел возможную причину и поправил код для 3.6. Откройте файл includes\classes\reports\reports.php найдите следующую строчку

Код: Выделить всё

    
    public static function prepare_dates_sql_filters($filters, $prefix = 'e')
    {
                
        if ($prefix == false)
и if ($prefix == false) замените на: if ($prefix === false)

В результате должно получится так:

Код: Выделить всё

    public static function prepare_dates_sql_filters($filters, $prefix = 'e')
    {
                
        if ($prefix === false)
        {            
            $prefix = '';
        } 
        else
        {            
            $prefix = (strlen($prefix) ? $prefix . '.' : 'e.');
        }
И ошибка должна пропасть. Сообщите результат.

Re: Database Error: 1052 - Column 'date_added' in where clause is ambiguous

Добавлено: 06 окт 2024, 19:26
alcompstudio
support писал(а): 06 окт 2024, 17:55 Нашел возможную причину и поправил код для 3.6. Откройте файл includes\classes\reports\reports.php найдите следующую строчку

Код: Выделить всё

    
    public static function prepare_dates_sql_filters($filters, $prefix = 'e')
    {
                
        if ($prefix == false)
и if ($prefix == false) замените на: if ($prefix === false)

В результате должно получится так:

Код: Выделить всё

    public static function prepare_dates_sql_filters($filters, $prefix = 'e')
    {
                
        if ($prefix === false)
        {            
            $prefix = '';
        } 
        else
        {            
            $prefix = (strlen($prefix) ? $prefix . '.' : 'e.');
        }
И ошибка должна пропасть. Сообщите результат.
Спасибо, код добавлю, но результат с исправлением ошибки пока не могу сообщить, т.к. пришлось удалять отчет и создавать новый. К удивлению новый отчет с теми же настройками (и системным полем Дата добавления в том числе) не показал ошибку. Я подумал, что это может быть какой-то сбой на стороне сервера...

Re: Database Error: 1052 - Column 'date_added' in where clause is ambiguous

Добавлено: 07 окт 2024, 08:55
Алексей Г
ПОдтверждаю, данная ошибка выскакивала когда фильтр по дате добавления, пару раз, потом пропала