Php mysql veritabnında arama ile ilgili (?)

0
Onaylı Üye
Üye
Katılım
1 Ocak 2007
Mesajlar
84
Tepki puanı
0
Arkadaşlar veritabanımda "abc" tablosunun, "abcde" alanında arama yaptırıyorum. Alanda 1000 kelimelik veri var diyelim.

veriyi çektim $yaz değerine akttardım diyelim.

substr("$yaz",0,120); ile "$yaz" değerinde aranan kelime varsa ilk 120 karakteri yazdırıyorum ama ben ilk 120 karakter değilde aranan kelimenin geçtiği cümledeki yada cümlelerdeki 120 karakteri yazdırmak istiyorum..

Yardımcı olursanız sevinirim... :)
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
Tam sinavlik bir soru!
Buraya ornek yazarmisin. Arama kelimesini ve 1000 karakterlik veriyi. Cumleler halinde.
 
0
Onaylı Üye
Üye
Katılım
5 Haziran 2006
Mesajlar
1,894
Tepki puanı
7
Cok basit:) hemen cevapliyorum

Örneğin aranan kelime "merhaba" olsun

PHP:
$ara="merhaba";

hemen bu $ara değişkeninden explode ediyoruz.

PHP:
$mesaj=$row[mesaj]; //mysql den geliyor
$ara="merhaba";
$bol=explode($ara,$mesaj);

bölme işleminden sonra ilk 2 parça bizi ilgilendircek yani "merhaba" yazısından önceki ve "merhaba" yazısından sonraki bölüm.

bunun içinde

PHP:
$mesaj=$row[mesaj];
$ara="merhaba";
$bol=explode($ara,$mesaj);

$ilk=substr($bol[0],-50);
$son=substr($bol[1],0,50);

şimdi ne yaptık. merhaba dan önce gelen değişkenin son 50 karakterini, merhaba dan sonra gelen değişkeninde ilk 50 karakterini aldık şimdide birleştirelim;

PHP:
$yazi= "...".$ilk."<b>".$ara."</b>".$son."...";

echo $yazi;

bu kadar.
 
1
Onaylı Üye
Üye
Katılım
25 Eylül 2006
Mesajlar
5,893
Tepki puanı
88
Konum
www.odatv.com
Güzel soru , başarılı anlatım, örnek yardım isteme +rep
Arkadaşlar veritabanımda "abc" tablosunun, "abcde" alanında arama yaptırıyorum. Alanda 1000 kelimelik veri var diyelim.

veriyi çektim $yaz değerine akttardım diyelim.

substr("$yaz",0,120); ile "$yaz" değerinde aranan kelime varsa ilk 120 karakteri yazdırıyorum ama ben ilk 120 karakter değilde aranan kelimenin geçtiği cümledeki yada cümlelerdeki 120 karakteri yazdırmak istiyorum..

Yardımcı olursanız sevinirim... :)
 
0
Onaylı Üye
Üye
Katılım
1 Ocak 2007
Mesajlar
84
Tepki puanı
0
Teşekkürler Caesar... PHP yi ve seni seviyorum :)

Konuyu açmışken ilgili bir soru daha sorayım;

mysql_query( "SELECT * FROM tablom WHERE alanım REGEXP '$aranan'");

arama yaparken "REGEXP" ile yukarıdaki sorguyu kullanıyorum. Büyük ve küçük harf gözetmeden araması için kullanım şekli nasıl olmalıdır ?
 
0
Onaylı Üye
Üye
Katılım
1 Ocak 2007
Mesajlar
84
Tepki puanı
0
LIKE denedim sonuç değişmedi. Çünkü ;

REGEXP '$aranan' da
like '%$aranan%' da

küçük, büyük karakter ayırmadan arama yapıyormuş.
o zaman şöyle soruyum;
Kitap yazıp aradığım zaman Kitap varsa bold çıkıyor da
KİTAP aradığım zaman aynı sonucu veriyor fakat bold çıkmıyor ?

İlgin için teşekkür ederim..
 
0
Onaylı Üye
Üye
Katılım
1 Ocak 2007
Mesajlar
84
Tepki puanı
0
replace kullanmak durumunda olduğumdan sorunu aşamıyorum artık...

Teşekkürler Caesar, İyi geceler dilerim....

Ben yine +rep veremiyorum :( (sistem izin vermiyo)
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
79
Konum
SEO
Teşekkürler Caesar... PHP yi ve seni seviyorum :)

Konuyu açmışken ilgili bir soru daha sorayım;



arama yaparken "REGEXP" ile yukarıdaki sorguyu kullanıyorum. Büyük ve küçük harf gözetmeden araması için kullanım şekli nasıl olmalıdır ?

REGEXP i kullandigim zaman büyük ve küçük harf gözetmedigini goruyorum. Yani case-insensitive davraniyor.
 
0
Onaylı Üye
Üye
Katılım
5 Haziran 2006
Mesajlar
1,894
Tepki puanı
7
sorgularda like de buyuk kucuk ayirmaz ama arkadas sorgudan gelen degeri str_replace ile değiştirmeye calisiyor bu yuzden buyuk küçük önemsiyor.
 
Geri
Üst