- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
$citys = $this->modelsManager->executeQuery("SELECT * FROM city");
$filters = $this->modelsManager->executeQuery("SELECT * FROM carfilter");
$partners = $this->modelsManager->executeQuery("SELECT id,city_id,email FROM Partner");
$to = array();
foreach($partners as $partner){ //Пробегаем по всем партнёрам
$city_config = unserialize($partner->city_id); //берём конфиги по городам
if(in_array($city, $city_config)){ //если партнёр работает в этом городе
foreach($filters as $filter){ //Проходимся по фильтрам
if($partner->id == $filter->partner){ //Находим фильтр, принадлежащий партнёру
if ($filter->consern_id == 1 && $filter->model_id == 1){ //если конфиг все модели/марки то
$to[] = array('email'=>$partner->email); //сразу записываем в список рассылки
}else{
if($filter->consern_id == $this->request->getPost("consern", "int") && $filter->model_id == $this->request->getPost("model_id", "int")){ //иначе если данные из заявки соответствуют фильтру, то
$to[] = array('email'=>$partner->email); //заносим его в список рассылок.
}
}
}
}
}
}
Реализация фильтра от новичка.
Сначала у него вообще был запрос к БД в цикле по $filters, тем самым он генерировал за раз больше 5к запросов :\