Перейти к содержанию
Официальный форум поддержки Simpla

Поиск заказа по телефону и имени в админке


Рекомендуемые сообщения

Нынешний поиск умеет искать только по одной выбранной таблице: name, phone и тд.
Запрос, отвечающий за поиск выглядит так:
api/Orders.tpl

$keyword_filter .= $this->db->placehold('AND o.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');



Вопрос: как изменить структуру запроса, для поиска одновременно по нескольким таблицам, например 'name' и 'phone' ?

UPD:
Cпасибо delprofile !
Заработал поиск и по телефону и по имени с такой конструкцией

$keyword_filter .= $this->db->placehold('AND o.phone LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');$keyword_filter .= $this->db->placehold('AND o.phone OR o.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');
Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ, но не отрабатывает.
Полный листинг стандартного запроса:

if(!empty($filter['keyword']))		{			$keywords = explode(' ', $filter['keyword']);			foreach($keywords as $keyword)				$keyword_filter .= $this->db->placehold('AND o.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');						}
Ссылка на сообщение
Поделиться на другие сайты

delprofile Спасибо! Запрос отрабатывает, но не выводит результат.

При такой конструкции:

$keyword_filter .= $this->db->placehold('AND o.phone OR o.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');


при поиске по имени выводит количество найденных заказов, но сами заказы не показывает, а выводит просто все заказы. Если искать по телефону, пишет заказы не найдены.

При такой конструкции:

$keyword_filter .= $this->db->placehold('AND o.name OR o.phone LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');

При поиске по телефону пишет что заказы не найдены, но все таки выводит найденные правильно заказы (парадокс). Если искать по имени, то пишет кол-во найденных заказов, но заказов не выводит.
Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения за свои кривые руки. Ещё раз спасибо delprofile
Заработал поиск и по телефону и по имени с такой конструкцией

$keyword_filter .= $this->db->placehold('AND o.phone LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');$keyword_filter .= $this->db->placehold('AND o.phone OR o.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');
Ссылка на сообщение
Поделиться на другие сайты

Для того, что бы убрать лишние символы из телефона, еще на стадии заказа, добавляем в view/CartView

после$order->phone       = $this->request->post('phone');добавим$order->phone = preg_replace('/[^\d,]+/', '', $order->phone);
Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...
  • 3 года спустя...

Подскажите, а как добавить возможность поиска еще и по email, а то при поиске , убираеться с названия почты символ "@" и не хочет работать.

$keyword_filter .= $this->db->placehold('AND o.id OR o.email LIKE "%'.$this->db->escape(trim($keyword)).'%" '); - так не работает.

Ссылка на сообщение
Поделиться на другие сайты

 

Нашел решение сам, в файле api/reguest.php необходимо написать: return strval(preg_replace('/[^\p{L}\p{Nd}\d\@\s_\-\.\%\s]/ui', '', $val));

Зря вы реквест трогали...

Ссылка на сообщение
Поделиться на другие сайты

Зря вы реквест трогали...

 

Почему зря? Можете привести хоть один недостаток, который возникнет из-за этого решения?

Ссылка на сообщение
Поделиться на другие сайты

Почему зря? Можете привести хоть один недостаток, который возникнет из-за этого решения?

Для тебя не буду ничего писать, возможно ты и сам в состоянии и хватает скиллов понять почему так делать не стоит.
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...