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.
php mantık sorusu
6
●290
- 22-07-2019, 17:27:05İş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:22Biraz karışık olmuş ama anlayabildiğim kadarıyla;beatrax adlı üyeden alıntı: mesajı görüntüle
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Ü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:50Hocam 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Üyeliği durduruldustrpos 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.mikropiks adlı üyeden alıntı: mesajı görüntüle