Öncelikle okumaya değer bulup zaman ayırdığınız için teşekkür ederim.
Hemen konuya girecek olursak;
members isimli bir mysql tablom var. Bu tabloda aranan_dil adında varchar tipinde bir alanım var. Kullanıcı profil düzenleme sayfasında konuştuğu dilleri işaretleyerek bu alanı güncelliyor. Diyelim ki Türkçe, ingilizce ve rusça dillerini seçti. Bu durumda aranan_dil alanına 1,2,6 şeklinde kaydediliyor.
Sorum şu;
Diğer kullanıcıların arama yaptığı bir sayfa var. Bu sayfada kullanıcı aradığı kişilerin konuştuğu dilleri seçiyor. Yine burada da birden fazla dil seçilebiliyor. Diyelim ki arama yapan vatandaş Türkçe, Almanca ve ingilizce dillerini konuşanları bulmak istiyor. Kullanıcı aramayı başlattığında elimde 1,3,2 verisini içeren bir array oluyor. Bu array ile aranan_dil alanında tutulan veriyi (1,2,6) karşılaştıran ve seçilen dillerden herhangi birini içeren kayıtları çekecek bir PDO sorgusu nasıl yazılabilir?
IN ve REGEXP yöntemlerini denedim ama olmadı bir türlü. Bu yöntemler sadece ilk veriyi karşılaştırıyor maalesef.
IN yönetmi ile denediğim kod:
isset($f_uye_dil_1) && $f_uye_dil_1 !='' ? $sql_dil_sql = " and (aranan_dil IN (".$f_uye_dil_1.")) " : $sql_dil_sql = '';REGEXP yönetmi ile denediğim kod:if(isset($f_uye_dil_1) && $f_uye_dil_1 !=''){
$sql_arr = '';
$sql_orek = '';
$sql_dil_sql = '';
$myArray = explode(',', $f_uye_dil_1);
foreach ($myArray as &$item) {
$sql_arr = $sql_arr.$sql_orek.$item;
$sql_orek = "|";
}
isset($sql_arr) && $sql_arr !='' ? $sql_dil_sql = " and ( aranan_dil REGEXP ".$sql_arr.") " : $sql_dil_sql = "";
} else {
$sql_dil_sql = '';
}Yardımlarınız için şimdiden teşekkür ederim.NOT: Biliyorum ki birçok üstat hayatını kod yazarak kazanıyor. Bu nedenle ücret karşılığında yardımcı olmak isteyen olursa da seve seve ödeme yapabilirim.