#mysql
#mysql
Вопрос:
% LIKE% выдаст мне результаты, которые соответствуют этому конкретному шаблону, например, если у вас iPhone 8, а затем, если я буду искать «iPhone», я получу результат iPhone 8, пока все хорошо, но я хочу, чтобы, если пользователь выполнит поиск по «iphone8» или «iPhone eight», в этом случае пользователь ничего не получит, вот что я попробовал
function patternn($p)
{
$p="%".$p."%";
return $p;
}
function like_match($pattern, $subject)
{
$pattern = str_replace('%', '.*', preg_quote($pattern, '/'));
return (bool) preg_match("/^{$pattern}$/i", $subject);
}
function mystripos($pattern1,$subject1)
{
$resultstr=stripos($pattern1,$subject1);
$zeroo=0;
$yn="";
if($resultstr===$zeroo) {
$yn="yes";
} elseif($resultstr>=1){
$yn="yes";
}else{
$yn="no";
}
return $yn;
}
function mystrripos($pattern2,$subject2)
{
$resultstr1=strripos($pattern2,$subject2);
$zeroo1=0;
$yn1="";
if($resultstr1===$zeroo1) {
$yn1="yes";
} elseif($resultstr1>=1) {
$yn1="yes";
} else {
$yn1="no";
}
return $yn1;
}
function cutinhalf1($strc)
{
$length=strlen($strc);
$newlength=0;
if($length % 2==0) {
$newlength=$length/2;
}else{
$newlength=$length/2;
$newlength=$newlength 0.5;
}
$strc=substr($strc, 0, $newlength);
return $strc;
}
function cutinhalf2($strc2)
{
$length2=strlen($strc2);
$newlength2=0;
if($length2 % 2==0) {
$newlength2=$length2/2;
}else{
$newlength2=$length2/2;
$newlength2=$newlength2-0.5;
}
$strc2=substr($strc2, $newlength2);
return $strc2;
}
if ( like_match(patternn($name),$keywordd)==1 ||
like_match(patternn($brand),$keywordd)==1 ||
like_match(patternn($model),$keywordd)==1 ||
like_match(patternn($type),$keywordd)==1 ||
like_match(patternn($cpu),$keywordd)==1 ||
like_match(patternn($gpu),$keywordd)==1 ||
like_match(patternn($gpu_spec),$keywordd)==1 ||
like_match(patternn($refresh_rate),$keywordd)==1
) {
$sql="SELECT image1 FROM pc where id=$idd";
$result= mysqli_query($db, $sql);
while ($row = mysqli_fetch_array($result)) {
echo"<img src='images/" .$row["image1"]."'>";
} elseif (
mystripos($name,$keywordd)=="yes"||
mystripos($name,str_replace(' ', '', $keywordd))=="yes"||
mystripos($name,cutinhalf1($keywordd))=="yes"||
mystripos($name,cutinhalf2($keywordd))=="yes"||
mystrripos($name,$keywordd)=="yes"||
mystrripos($name,str_replace(' ', '', $keywordd))=="yes"||
mystrripos($name,cutinhalf1($keywordd))=="yes"||
mystrripos($name,cutinhalf2($keywordd))=="yes"||
mystripos($brand,$keywordd)=="yes"||
mystripos($brand,str_replace(' ', '', $keywordd))=="yes"||
mystripos($brand,cutinhalf1($keywordd))=="yes"||
mystripos($brand,cutinhalf2($keywordd))=="yes"||
mystrripos($brand,$keywordd)=="yes"||
mystrripos($brand,str_replace(' ', '', $keywordd))=="yes"||
mystrripos($brand,cutinhalf1($keywordd))=="yes"||
mystrripos($brand,cutinhalf2($keywordd))=="yes"||
mystripos($model,$keywordd)=="yes"||
mystripos($model,str_replace(' ', '', $keywordd))=="yes"||
mystripos($model,cutinhalf1($keywordd))=="yes"||
mystripos($model,cutinhalf2($keywordd))=="yes"||
mystrripos($model,$keywordd)=="yes"||
mystrripos($model,str_replace(' ', '', $keywordd))=="yes"||
mystrripos($model,cutinhalf1($keywordd))=="yes"||
mystrripos($model,cutinhalf2($keywordd))=="yes"||
mystripos($type,$keywordd)=="yes"||
mystripos($type,str_replace(' ', '', $keywordd))=="yes"||
mystripos($type,cutinhalf1($keywordd))=="yes"||
mystripos($type,cutinhalf2($keywordd))=="yes"||
mystrripos($type,$keywordd)=="yes"||
mystrripos($type,str_replace(' ', '', $keywordd))=="yes"||
mystrripos($type,cutinhalf1($keywordd))=="yes"||
mystrripos($type,cutinhalf2($keywordd))=="yes"||
mystripos($cpu,$keywordd)=="yes"||
mystripos($cpu,str_replace(' ', '', $keywordd))=="yes"||
mystripos($cpu,cutinhalf1($keywordd))=="yes"||
mystripos($cpu,cutinhalf2($keywordd))=="yes"||
mystrripos($cpu,$keywordd)=="yes"||
mystrripos($cpu,str_replace(' ', '', $keywordd))=="yes"||
mystrripos($cpu,cutinhalf1($keywordd))=="yes"||
mystrripos($cpu,cutinhalf2($keywordd))=="yes"||
mystripos($gpu,$keywordd)=="yes"||
mystripos($gpu,str_replace(' ', '', $keywordd))=="yes"||
mystripos($gpu,cutinhalf1($keywordd))=="yes"||
mystripos($gpu,cutinhalf2($keywordd))=="yes"||
mystrripos($gpu,$keywordd)=="yes"||
mystrripos($gpu,str_replace(' ', '', $keywordd))=="yes"||
mystrripos($gpu,cutinhalf1($keywordd))=="yes"||
mystrripos($gpu,cutinhalf2($keywordd))=="yes"||
mystripos($gpu_spec,$keywordd)=="yes"||
mystripos($gpu_spec,str_replace(' ', '', $keywordd))=="yes"||
mystripos($gpu_spec,cutinhalf1($keywordd))=="yes"||
mystripos($gpu_spec,cutinhalf2($keywordd))=="yes"||
mystrripos($gpu_spec,$keywordd)=="yes"||
mystrripos($gpu_spec,str_replace(' ', '', $keywordd))=="yes"||
mystrripos($gpu_spec,cutinhalf1($keywordd))=="yes"||
mystrripos($gpu_spec,cutinhalf2($keywordd))=="yes"||
mystripos($refresh_rate,$keywordd)=="yes"||
mystripos($refresh_rate,str_replace(' ', '', $keywordd))=="yes"||
mystripos($refresh_rate,cutinhalf1($keywordd))=="yes"||
mystripos($refresh_rate,cutinhalf2($keywordd))=="yes"||
mystrripos($refresh_rate,$keywordd)=="yes"||
mystrripos($refresh_rate,str_replace(' ', '', $keywordd))=="yes"||
mystrripos($refresh_rate,cutinhalf1($keywordd))=="yes"||
mystrripos($refresh_rate,cutinhalf2($keywordd))=="yes"
) {
$sql="SELECT image1 FROM pc where id=$idd";
$result= mysqli_query($db, $sql);
while ($row = mysqli_fetch_array($result))
{
echo"<img src='images/" .$row["image1"]."'>";
}
}
}
Комментарии:
1.Хорошее расположение отступов в коде помогло бы нам прочитать код и, что более важно, это поможет вам отладить свой код Взгляните на стандарт кодирования для вашей же пользы. Возможно, вас попросят внести изменения в этот код через несколько недель / месяцев, и в конце вы поблагодарите меня.
2. если вам интересно sjhannah.com/blog/2014/11/03 /…
3. Смотрите о внедрении sql и важности подготовленных и связанных запросов