Doğru Cevap
-
Benzer Haber olabilmesi için haberin diğer haberlerle en azından başlık içinde geçen kelimelerin benzerliğinden gidilebilir. (Bence en mantıklısı budur...) Aynı kategorideki haberlerden 5 tanesini çekmek Benzer Haber ile uyuşur mu? bu ayrıca tartışılır...
Gösterilen sayfadaki haberin başlığına benzer 10 haberi aşağıdaki SQL ile alabilirsin...
(Geçerli haberin başlığını boşluklara göre kelimelere ayırıyor ve 3 sesden büyük kelimeleri tblhaberler tablosundan arayıp oluşturulma tarihine göre 10 tanesini çekiyor... Oluşturulma, diğer tarih alanı ve aktif onayı sql den çıkartılıp kendinize uyarlayabilirsiniz.. ya da kendi tablonuza bu alanları da ekleyebilirsiniz...)
$sql = "SELECT id, baslik," . "\n DATE_FORMAT(olusturulma_tarihi, 'TARIH FORMAT ŞEKLİN') as tarih" . "\n FROM tblHaber" . "\n WHERE olusturulma_tarihi <= NOW()" . "\n AND (bitis_tarihi = '0000-00-00 00:00:00' OR bitis_tarihi >= NOW())" . "\n AND aktif = 1" . "\n AND id != ".$id . "\n AND (1=0"; $related = explode(' ',$baslik); foreach($related as $kelime) { $kelime = str_replace(',', '', $kelime); if(strlen($kelime) > 3) { $sql .= " OR baslik LIKE '%".$db->escape($kelime)."%'"; } } $sql .= ")" . "\n ORDER BY olusturulma_tarihi DESC LIMIT 5";
-
Who
Teşekkür ederim verdiğiniz kodlarla yaptım. Kategoriye göre çekmemin sebebi bir tanıtım sitesi olması yani atıyorum Lord Of The Rings filmi ile ilgili bir yazı yazdıysam bu yazı Lord Of The Rings Kategorisinde ve altta o kategorinni 5 haberini göstertmek istedim ama verdiğiniz kodlarla daha iyi oldu açıkcası teşekkür ediyorum.11 yıl önce yazılmış -
zyber
Rica ederim. Birde Etiket Bulutu eklersin ;)11 yıl önce yazılmış
-
Cevaplar
-
While döngüsüne sokarsan 5 tanesinde gelir.
$gelen_id=$_GET['id']; $gelen_haber=mysql_fetch_array(mysql_query("SELECT * FROM haberler WHERE haber_id='$gelen_id'")); $haber= $gelen_haber['haber_kategori']; while($benzer_haber=mysql_fetch_array(mysql_query("SELECT * FROM haberler WHERE haber_kategori='$haber' ORDER BY rand() LIMIT 5"))){ echo ' <div class="haber-icerik-blogu"> <h3 class="haber-basligi">'.$gelen_haber['haber_baslik'].' </h3> <div class="haber-p">'.$gelen_haber['haber_icerik'] .'</div> '.$benzer_haber['haber_baslik'].' </div> <div class="benzer-haberler"> </div> ';}
-
Who
Verdiğiniz bu kodlarla denediğimde sonsuz bir döngüye girdi girdiğim haberdeki yazı sonsuz kere tekrar etti11 yıl önce yazılmış
-