lostyazilim
tr.link

[ÇÖZÜLDÜ] PHP ile benzer yazılar kısmı yapımı hakkında (PHP+SQL bilenler bakabilir mi)

7 Mesajlar 1.763 Okunma
acebozum
tr.link

hk1337 hk1337 WM Aracı Kullanıcı
  • Üyelik 01.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek -
  • Konum Ankara
  • Ad Soyad H** K**
  • Mesajlar 284
  • Beğeniler 48 / 17
  • Ticaret 3, (%100)
Merhaba, başlıkta dediğim gibi benzer yazılar kısmı yapacağım fakat veritabanında benzer satırları bulabilmem için kategori veya etiket sütunu koymamam gerekiyor. O yüzden bende yazı başlığında ki kelimeleri tek tek seçip o kelimeleri etiket gibi diğer yazıların başlık sütununda aramak istiyorum. Kısaca yazı başlığında ki kelimeleri ayırıp her kelimeyi başlık sütununda ayrı ayrı nasıl aratabilirim?

Adım adım:
- Yazı başlığını veritabanından çekip PHP ile değişkene aktarmak ($baslik) (Bunu yaptım)
- $baslik değişkeninin içerisinde ki kelimeleri ayırmak.
- Ayrılan kelimeleri, yazilar tablosunun baslik sütununda aramak.
- Aranan kelimelerin herhangi biri baslik sütununda varsa döngüye girmesi.


$baslik = "Bu bir deneme başlığıdır"; //BAŞLIĞI TANIMLADIK. BEN NORMALDE SQL İLE ÇEKİP DEĞİŞKENE ÇEVİRİYORUM
$kelime_ayir = explode(" ", $baslik]); //BURADA BAŞLIKTA BULUNAN KELİMELERİ AYIRDIK.
$kelime_ayir =mysql_query("select * from tablo_adi where sutun_adi like '%$kelime_ayir[0]%' OR '%$kelime_ayir[1]%' OR '%$kelime_ayir[2]%' OR '%$kelime_ayir[3]%' OR '%$kelime_ayir[4]%'"); // SQL İLE VERİTABANINDA HER BİR KELİMEYİ ARIYORUZ. OR KULLANDIĞIMIZ İÇİN KELİMELERDEN HERHANGİ BİRİ BİLE İÇİNDE OLAN BAŞLIĞI SEÇMİŞ OLUYORUZ.
 

 

elektronikssl
webimgo

ERENKYI ERENKYI WM Aracı Kullanıcı
  • Üyelik 11.07.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad E** K**
  • Mesajlar 169
  • Beğeniler 8 / 45
  • Ticaret 1, (%100)
Tavsiyem her sütuna etiket eklemeniz.

1 - Etiketleri veya başlığı (tavsiye etmem) çek.
2 - explode ile ayır hepsini.
3 - SQL oluştur.
4 - foreach komutu ile regexp kullanarak her bir kelimeyi ekle SQL sorgusuna.

4'e örnek : REGEXP '[[:<:]]kelime[[:>:]]'
 

 

hk1337 hk1337 WM Aracı Kullanıcı
  • Üyelik 01.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek -
  • Konum Ankara
  • Ad Soyad H** K**
  • Mesajlar 284
  • Beğeniler 48 / 17
  • Ticaret 3, (%100)
ERENKYI 4. adımın alternatifi var mı? O komutlar hakkında pek bir bilgim yok şu an.
 

 

ERENKYI ERENKYI WM Aracı Kullanıcı
  • Üyelik 11.07.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad E** K**
  • Mesajlar 169
  • Beğeniler 8 / 45
  • Ticaret 1, (%100)
hk1337 komutu direk SQL içerisinde WHERE'den (veya duruma göre AND/OR'dan sonra) koyacaksınız. Bildiğim kadarıyla sql ile etiket arama sisteminde en kolay yol bu. İsterseniz tüm postları çekip PHP üzerinde kendinize göre bir algoritma yazabilirsiniz.
 

 

wmaraci
wmaraci

UmutWare UmutWare Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 24.03.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Ögrenci &amp; Yazılım
  • Konum KKTC
  • Ad Soyad U** M**
  • Mesajlar 482
  • Beğeniler 26 / 80
  • Ticaret 3, (%100)
SELECT * FROM haber WHERE habericerik like '%anahtar kelime%'
bu şekilde işinizi görecektir
hk1337
 

 

hk1337 hk1337 WM Aracı Kullanıcı
  • Üyelik 01.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek -
  • Konum Ankara
  • Ad Soyad H** K**
  • Mesajlar 284
  • Beğeniler 48 / 17
  • Ticaret 3, (%100)
UmutWare SQL ile arama hakkında az çok bilgim var ama önemli olan aynı anda birden fazla anahtar kelime arattırıp herhangi biri habericerik sütununda varsa döngüye girmesi.
 

 

hk1337 hk1337 WM Aracı Kullanıcı
  • Üyelik 01.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek -
  • Konum Ankara
  • Ad Soyad H** K**
  • Mesajlar 284
  • Beğeniler 48 / 17
  • Ticaret 3, (%100)

ERENKYI adlı üyeden alıntı

Tavsiyem her sütuna etiket eklemeniz.

1 - Etiketleri veya başlığı (tavsiye etmem) çek.
2 - explode ile ayır hepsini.
3 - SQL oluştur.
4 - foreach komutu ile regexp kullanarak her bir kelimeyi ekle SQL sorgusuna.

4'e örnek : REGEXP '[[:<:]]kelime[[:>:]]'

İstediğimi explode ile ayırıp or kullanarak hallettim teşekkürler.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al