-
Üyelik
17.01.2019
-
Yaş/Cinsiyet
25 / E
-
Meslek
Öğrenci
-
Konum
Kütahya
-
Ad Soyad
S** B**
-
Mesajlar
9
-
Beğeniler
5 / 0
-
Ticaret
0, (%0)
Merhabalar stok takip programı yapıyorum. Mysql de like yaparken illa cümleye göre arama yapıyor fakat ben her farklı şekilde arama yapmak istiyorum.
Örnek olarak ürün adi motorsiklet iç lastik
Ama ben arama yaparken mesela böyle aramak istiyorum iç lastik motorsiklet nasıl yapabilirim ?
-
Üyelik
17.01.2019
-
Yaş/Cinsiyet
25 / E
-
Meslek
Öğrenci
-
Konum
Kütahya
-
Ad Soyad
S** B**
-
Mesajlar
9
-
Beğeniler
5 / 0
-
Ticaret
0, (%0)
Başka çözümü var mı ? Yada projesinde kullanan ?
-
Üyelik
30.03.2019
-
Yaş/Cinsiyet
30 / E
-
Meslek
Yazılımcı
-
Konum
Muğla
-
Ad Soyad
A** Y**
-
Mesajlar
93
-
Beğeniler
12 / 47
-
Ticaret
3, (%100)
Kurumsal geliştirmede dediğin yöntem kullanılmaz. Veri girişi nasıl yapıldıysa o şekilde arama yaptırılır. Program müşterinin kullanabileceği kolaylıkta ve müşterinin programa uyacağı şekilde olur. "Müşteri programa uymak zorundadır" demen gerekir bu durumda.
Örneğin;
Stok Adı : Motorsiklet İç Lastik
Arama yaptırdığın zaman kullanıcı arama yerine iç lastik yazarsa içinde iç lastik geçen stokları getirir.
İlle de yapacağım diyorsan Like or Like kombinasyonu yapman gerekir bir döngü ile. Bu döngüyüde girilen kelimeleri parse ederek çıkan kelime sayısı kadar döndürüp kelimeleri ekletmen olur ama sağlıksız olur.
1 kişi bu mesajı beğendi.
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
Alttaki sorguyu ihtiyacınıza göre düzenleyebilirsiniz. Unutmamanız gerekir ki kelime sayısı arttıkça sorgu performansında ciddi yavaşlamalar olacaktır.
$name ='John S Smith';
$words=explode(" ", $name);;
function get_all_combination($arr, $temp_string, &$collect) {
if ($temp_string != "")
$collect []= $temp_string;
for ($i=0; $i $arrcopy = $arr;
$elem = array_splice($arrcopy, $i, 1); // i'ninci elemanı silip, döndürür
if (sizeof($arrcopy) > 0) {
get_all_combination($arrcopy, $temp_string ." " . $elem[0], $collect);
} else {
$collect []= $temp_string. " " . $elem[0];
}
}
}
$collect = array();
get_all_combination($words, "", $collect);
/*
$collect içeriği
[0] => John
[1] => John S
[2] => John S Smith
[3] => John Smith
[4] => John Smith S
[5] => S
[6] => S John
[7] => S John Smith
[8] => S Smith
[9] => S Smith John
[10] => Smith
[11] => Smith John
[12] => Smith John S
[13] => Smith S
[14] => Smith S John
*/
$sql="SELECT * FROM sent WHERE 1=1 AND (customer_name = '".implode("' OR customer_name = '",$collect)."')" ;
?>
1 kişi bu mesajı beğendi.