Pluton Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 Selam ben bu soruyu sordum gibi geldi ama aradım taradım bulamadım. Dejavu oldum sanırım. Şimdi gelişmiş arama yapıyorum da şöle bi sorun var. Kişinin sql'de kayıtlı seçenekleri var; "1,2,3,4,5" seçimlerine göre aynen böyle kaydediliyor. Gelişmiş aramada ise; Seçenek 1 Seçenek 2 Olarak listeleniyor, şimdi bu sql'de in_array gibi birşey yapmanın olanağı var mıdır ?
El-Barto Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 Sorunu tam anlamadım da bi listede bişey aratmak mı istiosun? Eğer öyle anladıysam "IN" diye bişey var işte: select * from table where x IN (buraya liste)
Pluton Mesaj tarihi: Ocak 17, 2010 Konuyu açan Mesaj tarihi: Ocak 17, 2010 Oda tam verimli çalışmıyor ki. Mesela 2 kişi olsun. Bunların seçimleri aşağıdaki gibi olsun; Birinci kişi: 1,2 İkinci kişi: 2 sütun IN(2,3) Yaptıgımda sadece ikinci kişi listeleniyor. Ama birinci kişininde listelenmesi lazım
sharky Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 select * from table where x = 1 or x = 2 ?
Pluton Mesaj tarihi: Ocak 17, 2010 Konuyu açan Mesaj tarihi: Ocak 17, 2010 Ya şimdi binlerce seçim var. Hepsini Foreach ile böl tek tek kontrol yazdır kasar diye düşündüm. Aklımda kalan seçenek sayısı 500 mesela adam 200 tanesini işaretlese AND x= OR x= OR x= AND y= OR y= OR y= ...... diye gidicek. Kolay ve daha sağlıklı bir yolu olmalı
nameless Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 mysql kullanıyorsan MATCH(sütun) AGAINST(değişken) var ama tablo oluşturulurken "TYPE=MyISAM" diye belirtmek gerekiyor.
sharky Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 (tu) Sirf merakimdan yazdim ne tur tepki vereceksin diye.
Brigand Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 select * from table where x = '" . implode("' or x='" , $arr) . "'
Pluton Mesaj tarihi: Ocak 17, 2010 Konuyu açan Mesaj tarihi: Ocak 17, 2010 @nameless Onun için FULLTEXT yapmak lazımmış birde açıkcası Mysql'e okadar hakim değilim. @sharky =) hehe @Brigand O değişin şekilde olmaz. Neden olmaz mesela aranacak kişinin seçimleri şu şekildedir; 2,6,8. Arayan kişi ise şunları seçmiştir; 2,4,5,6,7,8. Böyle oldugu zamanda: select * from table where x = '2,4,5,6,7,8' olur aranan kişinin olayını bitirir. Başka bir yolu yok mu ya püff :(
Brigand Mesaj tarihi: Ocak 17, 2010 Mesaj tarihi: Ocak 17, 2010 veritabanında 1,2,5 diye değil ,1,2,5, diye tut select * from table where x like '%," . implode(",%' or x like '%," , $arr) . ",%' ;)
Pluton Mesaj tarihi: Ocak 18, 2010 Konuyu açan Mesaj tarihi: Ocak 18, 2010 Onuda düşündümde sistemin nerdeyse %90 'ı bitti hepsini değiştirmek ölüm şimdi :D
Mum_Chamber Mesaj tarihi: Ocak 18, 2010 Mesaj tarihi: Ocak 18, 2010 aslinda bunun "kolay ve daha saglikli bir yolu" veritabaninda boyle tercihleri ayri bir cross reference tablosunda tutmaktir. bu haliyle senin arama yapmak istedigin alan bir metin, ve sen metinsel arama yapmak istiyorsun. aradigin da word by word degil, expression search. onu da regexp ile yapabilirsin.
Pluton Mesaj tarihi: Ocak 18, 2010 Konuyu açan Mesaj tarihi: Ocak 18, 2010 hmmm doğru hemen bi bakayım
Mum_Chamber Mesaj tarihi: Ocak 18, 2010 Mesaj tarihi: Ocak 18, 2010 ah be ben de tam mesajin tonunu yumusatmaya calisiyordum =)
Pluton Mesaj tarihi: Ocak 21, 2010 Konuyu açan Mesaj tarihi: Ocak 21, 2010 yok abi mysql regexp olayını adam gibi anlatan olmamış ki anlamadım makalelerden hiçbirşey
Pluton Mesaj tarihi: Ocak 21, 2010 Konuyu açan Mesaj tarihi: Ocak 21, 2010 Ulan hep buraya yazdığımda buluyorum ben cevapları =) http://www.brainbell.com/tutorials/MySQL/Using_MySQL_Regular_Expressions.htm şurda baya detaylı anlattım eleman. $array = implode('|',$gelen); WHERE sutun REGEXP '$array' Yaptım ve şimdilik sorun görünmüyo --- Yok ya buda yememiş. 10 ile 1 'i aynı kefeye koyuyo
Brigand Mesaj tarihi: Ocak 21, 2010 Mesaj tarihi: Ocak 21, 2010 zilyon tane çözüm sunuldu kullanmıyosun hiçbirini en son benim yazdığım mesela tam istediğini yapar senin madem illa kendin arayacan sana sunulan çözümleri beğenmiyon niye buraya yazıyon demezler mi adama
Pluton Mesaj tarihi: Ocak 21, 2010 Konuyu açan Mesaj tarihi: Ocak 21, 2010 Brigand said: en son benim yazdığım mesela tam istediğini yapar senin Brigand said: veritabanında 1,2,5 diye değil ,1,2,5, diye tut select * from table where x like '%," . implode(",%' or x like '%," , $arr) . ",%' ;) Pluton said: Onuda düşündümde sistemin nerdeyse %90 'ı bitti hepsini değiştirmek ölüm şimdi :D Sonuç olarak dediklerinizin hepsini denedim ve denenemeyecek kadar geç kaldıklarımıda denemedim tabi ki.
Brigand Mesaj tarihi: Ocak 21, 2010 Mesaj tarihi: Ocak 21, 2010 konuyu 17 ocakta açmışın bugün 21 ocak. isterse %100'ü bitsin 4 günde yaptığın şeyi rahatça değiştirbilirsin. ondan biraz uğraş uyarla sistemini. her zaman tam istediğin gibi çözümler bulunmaz, herşey önümüze hazır gelmez.
Mum_Chamber Mesaj tarihi: Ocak 21, 2010 Mesaj tarihi: Ocak 21, 2010 pluton, regex'im cok kotu olmasa el atarim ama benim yazmam sifirdan senin ogrenip yazmanla ayni zamani alir =) en azindan sen ogrenmis olursun.
Pluton Mesaj tarihi: Ocak 21, 2010 Konuyu açan Mesaj tarihi: Ocak 21, 2010 @Brigand Şimdi Kasımdan beri varolan bir proje ve ordaki boşulukta o aradaki zamanın yolda geçmiş olmasıdır. Neyse açıklama neden yaptıysam anlamadım. Ayrıca o senin deiğin olayı yapana kadar FIND_IN_SET işimi görüyor ama dediğim gibi "FIND_IN_SET() OR FIND_IN_SET() OR .... OR FIND_IN_SET()" yaptırmak istemiyorum açıkcası 300 seçeneği işaretlese sen düşün artık uzunlugu @Mum_Chamber Regex az biraz biliyorum ama mysql'in REGEXP işlevi ve olayın tırtlığı beni deli etti 2.5 saattir bir şey bulamadım ona yanıyorum
Öne çıkan mesajlar