Задача: нужно выбрать строки, в которых поле начинается с выбранной буквы, не учитывая определенный набор символов в его начале — ИП, ООО и т.д.
Т.е. фильтр по алфавиту, но наименования указаны как ИП Тест или в другом любом формате.
Например, при поиске результатов, начинающихся с С должен найти ООО РЦ «Северо-Запад»
Набор неучитываемых символов задается пользователем, указывается через разделитель |:
$setting_replace='ИП|ООО|ТД|РЦ|"|«';
$part_sql='`name`';
$replaces=explode('|',$setting_replace);
foreach($replaces as $item){
$part_sql="REPLACE(".$part_sql.",'".$item."','')";
}
$where.=" AND TRIM(".$part_sql.") LIKE '".$_GET['let']."%'";//TRIM - удаляем образовавшиеся пробелы, в нашем случае в начале
В результате поиска строк, у которых наименование начинается с «С» требуемая часть sql-запроса будет иметь вид:
AND TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(`name`,'ИП',''),'ООО',''),'ТД',''),'РЦ',''),'"',''),'«','')) LIKE 'С%'
В примере 10 часов
ini_set('session.gc_maxlifetime',36000);
session_set_cookie_params(36000);
http://www.idivision.ru/2010/10/24/cbrf-exchange-rates-php-class/
$rates=new ExchangeRatesCBRF(date('Y-m-d'));
$eurocb=$rates->GetRate("EUR");
Регистронезависимый поиск по вхождению строки на русском в utf-8 (необходимо указание кодировки)
if(mb_stristr($data_vid_naness_text,'тиснение',false,'utf-8')){
}
Усовершенствованное решение этого варианта: http://krylov.org.ua/?p=1130
.htaccess
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R=301,L]
Работает для http://site.com/dir1///dir2
но проблема остается в адресах типа http://site.com///uri (несколько слешей после домена)
Решение на php:
if(stristr($_SERVER['REQUEST_URI'],'//')){
$uri=preg_replace('#/{2,}#','/',$_SERVER['REQUEST_URI']);
header('Location: '.$uri,false,301);
exit;
}
В примере необходимо генерировать в URL фильтрацию по цене только в том случае, если пользователь сам изменил ползунок выбора цены.
Т.е. нужно не передавать определенные параметры в _GET (по ситуации).
Часть формы (добавляем hidden поля):
<form method="get" action="" id="filter_form">
от <input type="text" name="price_from" id="price_from" value="100"/>
до <input type="text" name="price_to" id="price_to" value="1000"/>
<input type="hidden" id="price_min" value="100"/>
<input type="hidden" id="price_max" value="1000"/>
</form>
Яваскриптом дисаблим inputы, если их значения не меняли.
$(function(){
$("#filter_form").submit(function(){
if($("#price_from").val()==$("#price_min").val()){
$("#price_from").attr("disabled","disabled");
}
if($("#price_to").val()==$("#price_max").val()){
$("#price_to").attr("disabled","disabled");
}
});
});