sohbet odaları

Php mysql veritabnında arama ile ilgili (?)

Metro

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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... :)
 

iyinet

Root
Admin
Bilgiler
Katılım
2 Eylül 2002
Mesajlar
5,021
Reaksiyon
53
Puanları
51
Şube
Sakarya
256 Aydır Üye
Tam sinavlik bir soru!
Buraya ornek yazarmisin. Arama kelimesini ve 1000 karakterlik veriyi. Cumleler halinde.
 

Caesar

Müptela
Bilgiler
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaksiyon
7
Puanları
0
211 Aydır Üye
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.
 
Bilgiler
Katılım
26 Eylül 2006
Mesajlar
5,893
Reaksiyon
96
Puanları
0
Şube
www.odatv.com
207 Aydır Üye
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... :)
 

Metro

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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 ?
 

Caesar

Müptela
Bilgiler
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaksiyon
7
Puanları
0
211 Aydır Üye
alanim like '%$aranan%'
 

Metro

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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..
 

Caesar

Müptela
Bilgiler
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaksiyon
7
Puanları
0
211 Aydır Üye
o replace yüzünden.
 

Metro

Şen Üye
Bilgiler
Katılım
1 Ocak 2007
Mesajlar
84
Reaksiyon
0
Puanları
0
204 Aydır Üye
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)
 

iyinet

Root
Admin
Bilgiler
Katılım
2 Eylül 2002
Mesajlar
5,021
Reaksiyon
53
Puanları
51
Şube
Sakarya
256 Aydır Üye
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.
 

Caesar

Müptela
Bilgiler
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaksiyon
7
Puanları
0
211 Aydır Üye
sorgularda like de buyuk kucuk ayirmaz ama arkadas sorgudan gelen degeri str_replace ile değiştirmeye calisiyor bu yuzden buyuk küçük önemsiyor.
 
  • Yararlı
Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur. iyinet.com sayfalarında yer alan yazı, görsel ve linklerle ilgili hukuki şikayetleriniz için Buradan iletişime geçmeniz durumunda, ilgili kanunlar ve yönetmelikler çerçevesinde en geç 7 gün içerisinde iyinet yönetimince tarafınıza dönüş sağlanacaktır.
Üst