İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Php mysql veritabnında arama ile ilgili (?)

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
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... :)
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
62
Konum
Sakarya
Tam sinavlik bir soru!
Buraya ornek yazarmisin. Arama kelimesini ve 1000 karakterlik veriyi. Cumleler halinde.
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
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.
 

Mywedding

1
İyinet Üyesi
Katılım
26 Eylül 2006
Mesajlar
5,893
Reaction score
96
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... :)
 

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
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 ?
 

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
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..
 

Metro

0
İyinet Üyesi
Katılım
1 Ocak 2007
Mesajlar
84
Reaction score
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)
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
62
Konum
Sakarya
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

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
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.
 

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.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst