folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Pdo - Mysql Regex İle Arama /Sıralama



Pdo - Mysql Regex İle Arama /Sıralama

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Merhaba arkadaşlar  küçük verileri çok fazla column oluşturmamak için tek alanda saklıyorum , örnek olarak  şöyle ki   

    Tablo adımız kitaplar  olsun

    id kitap adı yazarı Kitabın kategorisi
    1 Kitap adı 1 yazar 1 1-2-5
    2 kitap adı 2 yazar 2 5-6-9

    Kitabın_kategorisi bölümünde yer alanlar   =>   AnaKategori İD - AltKategori İD - Bölüm İD      şeklinde sıralanıyor.

    Mesela ben   anakategori id si   1 olanları sıralamak istediğimde    veya alt kategori id si 6 olanları sıralamak istediğimde ne şekilde bir yapı kullanmam gerekiyor.

    - REgex olarak \(.*?)-\xi     işimi görür mü ?

    - Pdo kısmında da    stackoverflow da gördüğüm kadarıyla

    $sirala = $conn->prepare("select * from tablo where alan regexp ':regexalani' ");

    $sirala->bindValue('regexalani' , $regex);

     

    şeklinde kullanılıyor.  regex değişkenine yazdığım regex i tanımlayınca hata veriyor.   

    Regex ile arama / sıralama nasıl yapılır veya bu konuda alternatif bir yöntem önerebilir misiniz ?


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Neden Regex ? Normal sorgu işini görmüyor mu hocam merak ettim sadece konu baltalamak değil amacım Regex bilmiyorum ama sorgu kısmını sorarsan yardım edeyim.


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Hocam regex olmak zorunda değil.   Dediğim gibi Kitabın_kategorisi kısmında  3 farklı numeric değer tutuyorum ve bunları  -  işareti ile ayırmışım.   Bu - işaretiyle ayırdığım değerlerden istediğime göre sıralamayı ne şekilde yapabilirim ?  Mesela kitabin_kategorisi  kısmında ilk değeri 1 olanları sıralamak istersem veya     ikinci değeri   6 olanı sıralamak istersen ya da  son değeri 5 olanı sıralamak istersem ne şekilde bir kod kullanmam gerekir ?  (like ile içinde 5 var mı diye kontrol edersem tablo da gördüğün gibi  ilk row un   3. değerinde  2. rowun da 1. değerinde yer almakta yani amacıma hizmet etmez. Eğer like ile yapılabiliyorsa nasıl yapıldığını bilmiyorum :S )


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Like komutunu araştırır  mısın? Mesela adı Ah ile başlayanları bulmak için Like ah% yetiyor hatta sonu ah olan için %ah  ortada ah geçenler için de %ah% demek yetiyor. 

     

    MhmdAlmz tarafından 21/Tem/16 18:53 tarihinde düzenlenmiştir

    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek
    MhmdAlmz bunu yazdı

    Like komutunu araştırır  mısın? Mesela adı Ah ile başlayanları bulmak için Like ah% yetiyor hatta sonu ah ortada ah geçenler için de %ah% demek yetiyor. 

    Hocam yukarda dediğim gibi mesela ben   like ile     %15%   yaptım     ve xxx-15-yyyx   olanları sıralamak istedim fakat veriler arasında  115-15-151 var bu defa karma çorba olacak.  

    Yukardaki mantıktan dolayı like i denemedim bile ama yinede emin olmak için like komutunu tekrar araştıracağım ve deneyeceğim.   


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Realist
    Realist's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    tam ne yapmak istediğini anlamadım ama explode ile "-" bölüp sonra where ile sorguya çekebilirsin


    ..
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek
    Realist bunu yazdı

    tam ne yapmak istediğini anlamadım ama explode ile "-" bölüp sonra where ile sorguya çekebilirsin

    Hocam şöyle izah edeyim. Kitap bilgilerinin bulunduğu bir tablom var. Bu kitaplar belirli kategoriler e ait. Kategoriler im ise 3 çeşit  ana kategori ,  alt kategori ve bölüm dediğim alt kategoriye bağlı alt kategori semasal olarak şöyle 

    - Ana kategori 

    - - Alt kategori 

    - - - Bölüm 

    Şimdi ben şöyle düşündüm kitaplar tablo m da   anakategoriid,  altkategoriid ve bolumid diye 3 alan olusturacagima bu 3 bilgi tek alanda tutayım ve bunları - 'tire işareti ' veya başka bir ayraç ile ayirayim. Sonuçta id ler numeric olacağı için numEric olmayan herhangi bir ayraç kullanabilirim.

    Yanı where ile esleyecegim alan zaten bu şekilde olduğu için explode kullanmak işime yaramıyor zaten 


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    Veritabanı şemanı biraz değiştirmelisin. Anlatmak isterdim fakat uzun sürer. Anahtar kelimeleri aşağıya yazıyorum.

    as

    join

    hierarchical query

    nested categories

     


    Sadece bi imza..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek

     

    önün de üç seçenek var: 

    1, bu şekilde verileri çekip bi arraye at, kitap kategorisi kısmını explode() ile ayır sonra o arrayi sort et

    2, üç ayrı sütun oluştur (performansa çok etki etmez üç sutun olması)

    3. relation kullan, şöyleki: kitaplar, kategoriler ve kitap_kategori diye üç tablon olucak

    ilkinde kitaplar, ikincisinde kategoriler olucak. kitap_kategori tablosunda da kitap_id, kategori_id seklinde iki sütun olucak. sen kitap adıyla aratıp o kitabın hangi kategorilerde olduğunuu görüceksin ve bir kitap birden fazla kategoride olabilicek.

     

     

    ana kategori olayını da kategoriler tablosuna "ana kategori" sütunu ekleyip yapabilirsin


    black implies white, self implies other, life implies death.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek

    Tablo yapın berbat. Kitabın kategorisi kısmını n-n ilişki ile diğer bir tabloda saklamalısın.

     

    RDBMS'in yapması gereken işi regexp ile sen yapacaksan RDBMS kullanmanın anlamı nedir?

    O zaman document oriented sistemler kullan derim. MongoDB gibi.


    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocam Tabloların yapısı da belirsiz bu şekilde trilyon yol var ama o - ile ayrıdıklarını ID gibi sakla üstte herkes bas bas bağırmış yani bu kullanım saçma ilişkisel veri tabanı mantığına aykırı. Mesela Tek columd da ID-Ad-Soyad gibi birşey yaptığını düşün Uzunlukları da NVARCHAR(MAX) olsun :D Eee ne anlamı kaldı  Veri Tabanının ? TXT dosyasında da veri saklayabilirsin bu şekilde hem Veritabanı masrafın da ortadan kalkmış olur hemde sana eziyet ve bütün mimariye kafa atmış hakaret etmiş olursun yani..


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 1197 Toplam Mesaj: 13
php pdo mysql regex