1. PHP / Говнокод #18102

    +143

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 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к запросов :\

    Запостил: romaz, 01 Мая 2015

    Комментарии (0) RSS

    Добавить комментарий

    Ошибка компиляции комментария:
    1. Гости могут высказаться только во вторник, пятницу или субботу
    ava Где здесь C++, guest?!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код