Mehmet Fatih YILDIZ (mfyz.com)

Menü



Etiket sistemi



Üye Resmi Üye : superselo
29 Eylül Salı ´09 22:03 tarihinde yazmış
İçerik etiket ekleme sistemi nasıl çalışıyor. Yani tek bir textbox tan verileri virgülle (yada boşlukla) nasıl ayırıp veritabanına nasıl ekliyoruz.

İçerik ekleme formundan ayrı bir etiket formumu yapıyoruz?
 


Üye Resmi Üye : mfyz
30 Eylül Çarşamba ´09 15:10 tarihinde yazmış
Veritabanına da öyle, yani virgüllerle kaydediyorsun.
Asıl olay arama ve ilişkili konuları süzgeçleme gibi kısımlarda kullandığın SQL veya algoritmik methodlarla bir konunun bulunduğu anahtar kelime (etiket)lere uygun benzer içerikleri, ya da aramada o anahtar kelimelere göre skorlama mekanizmasını iyi oturtmaktan geçiyor.

Mesela şu an mfyz'de böyle tam kurgulu bir yapı yok, muhtemelen yeni sürümde bunu gözden geçirip "related posts" kıvamında birşeyler yapacağım.
 


Üye Resmi Üye : superselo
30 Eylül Çarşamba ´09 21:51 tarihinde yazmış
O zaman etiket verilerini çekerken explode ile ayırıyoruz değil mi?

En çok merak ettiğim konuda ilişkili konuları süzgeçlemeydi zaten. Yani iki ayrı konuda aynı etiket varsa nasıl olacak? Bunları nasıl bağlayacağız birbirine?

Şu konudaki sorularımı bi türlü toparlayamıyorum ya   :-)
 


Üye Resmi Üye : mfyz
1 Ekim Perşembe ´09 18:41 tarihinde yazmış
o noktada değişik algoritmalar var. Mesela google metin içindeki tekrar eden kelime sayısına göre bir anahtar kelime skorlaması fln yapıyor.

Ama burada yapılabilecek mantıklı şey anahtar kelimelerin sıralamasına dikkat etmek olabilir.

Tabi çapraz eşleme yaparak ilişkili konu bulmaya çalışmak daha doğru olacaktır ama şu an bu konuda bildiğim bir algoritma yok. Hiç uygulama fırsatım olmadığı için geliştirmeye çalışmadım ama birkaç saatlik çalışma ile mantıklı ve hızlı çalışan SQL yapısı oluşturulabilir bununla ilgili.
 


Üye Resmi Ziyaretçi : Serkan Yildiz
31 Ocak Pazar ´10 13:10 tarihinde yazmış
Etiket sistemi icin bir tablo olusturuyorsun
tag_id | tag_text | blog_id

Sonra sen bir inputa
blog,test, hello, world

vs yazicaksin,

Kendi yazdigim tag sinifindan bir method gosterecegim bu method virgulle ayirip sagindaki, solundaki boslugu silip ekliyor..

<?php
public function addTagsByBlogId($blogid, $tags)
{
if(empty($blogid) || empty($tags)) return;

// clean before and behind of input $tags
$tags = trim($tags);
$tagsExplode = explode(',', $tags);
$tagsCount = count($tagsExplode);

for($i=0;$i<=$tagsCount; $i++)
{
// The spaces before en after the tag clean
$tag = trim($tagsExplode[$i]);

$qAddTag = "INSERT INTO tags(tag_text, blog_id) ".
"VALUES('".$tag."', '".$blogid."')";

mysql_query($qAddTag);
}

}
 


Üye Resmi Üye : alone123
10 Şubat Çarşamba ´10 20:34 tarihinde yazmış
Etiket sistemi derken meta keywords den bahsediyorsunuz değil mi ?

Ben bunun için ekstradan bir tablo veya herhangi bir veritabanı işlemi uygulamıyorum.Keywords olarak forumumda konu başlığını tamamen alıyorum , str_replace ile virgüllere ayırarak alıyorum ve tüm metnin (yazının) boşluklarını virgüle çeviriyorum ; onları alıyorum.Yani 3 tane değişkenim var : $meta1 $meta2 $meta3
Sonra da bunları <meta keydords herneyse onun içine yazdırıyorum : )
 


Üye Resmi Ziyaretçi : Sedat ÇİFTÇİ
21 Şubat Pazar ´10 14:13 tarihinde yazmış
Veritabanında yazıların bulunduğu bolume bir kolon daha olustur adı "etiket" olsun

Daha sonra veritabanına veri işlerken etiketler tablosunuda query'e ekle

eklerken aralarına virgül (,) koyarak ekle normal bir şekilde
örnek: etiket,bulut,ruzgar vs. gibi

daha sonra bu kolandan verileri çekerken

<?
$cek=mysql_query("SELECT * FROM TABLOADI WHERE yazi_id='yazi_id'");
$row=mysql_fetch_array($cek);
$parcala=explode(",",$row['etiket']);
?>
<a href="arama.php?kelime=<?=$parcala[1];?>"><?=$parcala[1];?></a>


Hepsi bu kadar
 


Üye Resmi Ziyaretçi : Sedat ÇİFTÇİ
21 Şubat Pazar ´10 14:14 tarihinde yazmış
Pardon orada bir yanlışlık yapmışım while döngüsü kullanman gerekiyor bunun için son hali şu şekilde olmalı

<?
$cek=mysql_query("SELECT * FROM TABLOADI WHERE yazi_id='yazi_id'");
while($row=mysql_fetch_array($cek)){
$parcala=explode(",",$row['etiket']);
?>
<a href="arama.php?kelime=<?=$parcala[1];?>"><?=$parcala[1];?></a>
<? } ?>
 


Üye Resmi Üye : alone123
22 Şubat Pazartesi ´10 17:18 tarihinde yazmış
Hatalı kodlama ! Bir sayfada birden fazla <? ve ?> kullanmak sayfayı yavaşlatır.
echo "<a href='arama.php?kelime=parcala[1]'>$parcala[1]</a>";
kullanman yeterli.Üstelik dediğim gibi veritabanında bir işlem yağacağına etiketleri yazının ilk 50 harfinden vs. çek veritabanında yer kaplamasın.
 


Üye Resmi Üye : mfyz
23 Şubat Salı ´10 01:46 tarihinde yazmış
@alone123, bu hatalı kodlama değildir, optimist olmayan kodlamadır. Hatalı olması durumu çok farklı bir konudur.

Evet söylediğin doğru, fakat sayfa optimizasyonu konusunda php etiketleri veya html+php entegrasyonundaki bu syntax düzeninden önce mysql optimizasyonu, döngüler, recursive çalışan fonksiyonlar ve çalışan extension çağrıları (mysql soket, gd vs) azaltılması gibi daha önemli faktörler vardır.

Yoksa php bloklarının htlm içine böyle gömülmesi en fazla milisaniyeler kaybettirir. Çok dah önemli bir konu değildir bana kalırsa. Uygulama çatısı iyi optimize edildikten sonra bu tarz kodlamanın zararı yoktur.
 

Yeni Cevap

Önce Okuyun Yazılarınızda sosyal, dini ve politik taraflı mesajlar, başkalarına saldırı sayılabilecek laflardan kaçının. Argo kelimeler, küfürler otomatik olarak silinecektir. Bu kural ihlalleri ip, üyelik, isiminizin banlanmasına yol açabilir.

Hatırlatmak amacıyla : html kodlarının, link yapmak, vb amacıyla gireceğiniz ekstra bilimum şeylerin çalışmayacağını belirteyim. Yorumlayıcı zaten linklerinizi otomatik çevirecek, gülücüklerinizi dönüştürecektir. Zengin metin özellikleri için araç çubuğundaki butonları kullanın.


Yazar Bilgileri


E-Posta adresiniz gösterilmeyecektir.

(unut)

Üye iseniz, giriş yapıp bu bilgileri girmeden hızlıca cevap yazabilirsiniz. Cevabınızda resminiz/ikonunuz ve profil bağlantınız görüntülenecek, aynı zamanda güvenlik kodu girmek zorunda da kalmayacaksınız.
Üye olmak için buraya tıklayın.

Güvenlik Kodu
Güvenlik kodunu göremiyorsanız sayfayı yenileyin!


Yukarıdaki güvenlik kodunu bu kutuya yazın.

Cevap   
- +

Ad soyad, eposta ve cevap alanları
(⊗ işaretli alanlar) zorunludur.





mfyz.com'da şu an 11 ziyaretçi geziniyor. Toplam 114 makale, 208 yazı, 2999 gönderi var



  • RSS mfyz.com'u RSS beslemeleri ile takip edebilirsiniz
  • ServerTR Hosting Sponsoru ServerTR.com'a çok teşekkür ederiz
  • CC 2.5 Sitedeki materyalleri Creative Commons 2.5 Lisansı çerçevesinde kullanabilirsiniz. Lisans hakkında bilgi almak için tıklayın
  • İstatistikler Site ziyaret istatistikleri, konu, eğilim gibi ilginç istatistikler hakkında
  • Site Hakkında Site altyapısı, hazırlanışı, kurallar ve felsefesi hakkında
  • İletişim İletişim formu, iletişim bilgileri

mfyz.com Türk Programcılığının Gelişmesine Adanmıştır
HTML Standartlarına Uygundur

CSS Standartlarına Uygundur