• 22-07-2019, 17:19:31
    #1
    merhaba mantığını oturtamadığımız bir olay varda yardımcı olursanız sevinirim.

    soruna gelecek olursak;

    şimdi İstanbul bir ana başlık, en güzel istanbul mekanları adlı başlıkta İstanbul ana başlığının, alt başlığı.

    ben şuanda '%istanbul%' şeklinde başlıklarda aratarak içerisinde istanbul geçen tüm başlıkları veri tabanında ID'lerine göre istanbulun alt başlığı yapabiliyorum.

    problem şu; ben bu işlemi direk başlık girilirken yapmak istiyorum. yani kullanıcı en sevdiğim istanbul sokakları diye bir yazı girdiğinde otomatik veritabanında istanbul ana başlığının altına veritabanında bu id yi alt başlık olarak atmam lazım, mantığı hakkında yardımcı olursanız sevinirim.
  • 22-07-2019, 17:27:05
    #2
    İşi %istanbul% diye aratarak yanlış bir şekilde yapmışsın.
    Eğer kayıtlar arasında bir bağlantı kurmak istiyorsan kayıtların idlerinin ekstra bir taxonomy tablosunda eşleştirmen lazım.
    Çünkü ben senin sisteminde beyoğlu sinemaları diye kayıt eklediğimde bunu istanbul ile bağdaştıramazsın.
    Ya kayıtlara etiket sistemi eklemelisin. Ya da tekli ya da çoklu seçilebilen bir kategori sistemi eklemelisin.

    wordpressteki gibi harici bir taxonomy tablosu oluşturman lazım.

    başlık id (istanbul) 11
    kayıt id (istanbul mekanları) 1256

    diyelim

    taxonomy id = 1 , 11, 1256

    olarak kayıt girmelisin.

    Database in büyüdükçe %istanbul% diye text aramaları ile alacağın sonuçlar sistemini çok yorar.
  • 22-07-2019, 17:27:22
    #3
    beatrax adlı üyeden alıntı: mesajı görüntüle
    merhaba mantığını oturtamadığımız bir olay varda yardımcı olursanız sevinirim.

    soruna gelecek olursak;

    şimdi İstanbul bir ana başlık, en güzel istanbul mekanları adlı başlıkta İstanbul ana başlığının, alt başlığı.

    ben şuanda '%istanbul%' şeklinde başlıklarda aratarak içerisinde istanbul geçen tüm başlıkları veri tabanında ID'lerine göre istanbulun alt başlığı yapabiliyorum.

    problem şu; ben bu işlemi direk başlık girilirken yapmak istiyorum. yani kullanıcı en sevdiğim istanbul sokakları diye bir yazı girdiğinde otomatik veritabanında istanbul ana başlığının altına veritabanında bu id yi alt başlık olarak atmam lazım, mantığı hakkında yardımcı olursanız sevinirim.
    Biraz karışık olmuş ama anlayabildiğim kadarıyla;

    Girilecek cümleyi kelimelere bölerek 'en','sevdiğim','istanbul','sokakları' gibi hepsini ana başlıklarınızın içerisinde dönerek başlık ile kelime aynısı olması durumunda ara tablonuza işleyebilirsiniz.
  • 22-07-2019, 17:36:16
    #4
    Üyeliği durduruldu
    Çok fazla detaylı incelemedim ama, dediğine göre şöyle bir işlem yapabilirsin.
    Veritabanımızın yapısı bu şekilde olsun ; http://prntscr.com/oihqj4
    Verileri de post ile aldığını var sayarak ;
    <?php
    if($_POST){
    $veri=$_POST['veri'];
    $parcala=explode(" ",$veri);
    $parcalasay=count($parcala);
    for ($i=0; $i < $parcalasay ; $i++) {
    $ara=$parcala[$i];
    $sor=$db->query("SELECT *FROM baslik WHERE baslik='$ara'");
    $say=$sor->rowCount();
    if($say==1){
    $diz=$sor->fetch(PDO::FETCH_ASSOC);
    $baslikid=$diz['id'];
    $kaydet1=$db->prepare("INSERT INTO baslik SET alt_id:alt_id,baslik=:baslik");
    $kaydet2=$kaydet1->execute(array("alt_id"=>"$baslikid","baslik"=>"$veri"));
    if($kaydet2){
        echo "Kayıt Başarılı";
    }else{
        echo "Kayıt edilirken hata oluştu";
    }
    }
        ?>
    bu şekilde istediğine ulaşabilirsin sanırım. Bağlantı dosyasını include etmedim, sadece kodları yazdım.
  • 22-07-2019, 17:37:50
    #5
    Hocam sanırımbu tarz bişi istiyorsunuz. strpos fonksiyonu metnin içinden istediğiniz kelimenin kaçıncı satırdan başladığını gösteren bir fonksiyon. fonksiyonun false dönmesi kelimenin hiç geçmediği anlamına gelir. Aşağıda ki gibi bir kullanım işinize yarayacaktır
    if( strpos($baslik, 'istanbul') !== false ){
    # İstanbul kategorsi olarak ekle
    }else{
    # Normal ekle
    }
  • 22-07-2019, 17:42:10
    #6
    Üyeliği durduruldu
    mikropiks adlı üyeden alıntı: mesajı görüntüle
    Hocam sanırımbu tarz bişi istiyorsunuz. strpos fonksiyonu metnin içinden istediğiniz kelimenin kaçıncı satırdan başladığını gösteren bir fonksiyon. fonksiyonun false dönmesi kelimenin hiç geçmediği anlamına gelir. Aşağıda ki gibi bir kullanım işinize yarayacaktır
    if( strpos($icerik, 'istanbul') !== false ){
    echo 'İstanbul alt kategorisine ekle';
    }
    strpos fonksiyonu arkadaşın işine yaramayacaktır burada. Formdan alınan veri İstanbul'da olabilir, Ankara'da, İzmir'de... Postdan gelen verinin hangi ile ait olacağını bilemediği için ihtiyaç duyulan kelimeyi dinamik olarak strpos'a belirtemeyecektir diye düşünüyorum.
  • 22-07-2019, 18:21:27
    #7
    hepinize teşekkür ederim anlattığını mantıkla sorunu çözdüm..