Arkadaşlar merhaba Veritabanında;
hizmet adlı stunda virgüllü bir şekilde "1, 2, 3, 4, 5, 582, 132" verileri bulunuyor
Ben hizmet tablosuna bak 2 numarası geçen verileri getir demek istiyorum.
LIKE '%2%' ile yaptığım zaman 582 ve 132 geçen verileride getiriyor doğal olarak sadece 2 için nasıl bir sorgu yapmam gerekli
PHP Veri Çekme
8
●2.795
- 27-07-2018, 13:56:32% işareti herhangi bir karakter demek. başa ve sona % koyarsanız başında sonunda ne olurda olsun içinde 2 geçeni getirir.
like '2,' (virgül koyduk) yaparak günü kuryarabilirsiniz. fakat daha uygunu (mysql kullandıgınızı varsayarsak) find_in_set fonksiyonudur.
şu linl yardımcı olur: https://dev.mysql.com/doc/refman/8.0...on_find-in-set - 27-07-2018, 13:57:01hocam pek anlayamadım inceledim amaantijen adlı üyeden alıntı: mesajı görüntüle
şuan ki sorgum bu ;
$kategori= $row["kategori"]; SELECT * from firmalar WHERE hizmet LIKE '%$kategori%' ORDER BY puan DESC LIMIT 5
- 27-07-2018, 14:45:05BatuhaNN adlı üyeden alıntı: mesajı görüntüle
"SELECT * from firmalar WHERE FIND_IN_SET( '$kategori', hizmet) ORDER BY puan DESC LIMIT 5 "
Bu şekilde yapıyorum herhangi bir sonuç çıkartmıyor - 27-07-2018, 14:49:44$kategori değişkenini dumplayıp atar mısınız?ErGk adlı üyeden alıntı: mesajı görüntüle
- 27-07-2018, 14:55:10Hizmet Stunu : http://prntscr.com/kbpxjdBatuhaNN adlı üyeden alıntı: mesajı görüntüle
$kategori değişkeni ise başka bir tablodan veri çekiyor
http://prntscr.com/kbpyeg
sorun boşluklardan algılamıyor başınıza gelirse boşlukları silerek deneyin arkadaşlar - 27-07-2018, 18:17:18
$aranan="2"; $sql="select * from fmd_tablo where hizmet like '$aranan' or hizmet like '$aranan,%' or hizmet like '%, $aranan,%' or hizmet like '%, $aranan' "; mysql_query($sql);
ilk like sadece 2 varsa
ikinci like 2 başta ve başka hizmetler varsa
üçüncü like 2 ortada ise
dördüncü like ise 2 nin en sonra olduğu koşulda ise listeler
aramalarda mutlaka , ve boşlukda olmalı