Zopik Mesaj tarihi: Aralık 6, 2004 Mesaj tarihi: Aralık 6, 2004 şimdi elimde md5 ile crypt elinmiş benzersiz id ler var her kayıt için. sql tablosunda ki veriyi WHERE id=$cid şeklinde çektiğimde, sorunsuz olarak o id ile ilgili bilgiler geliyor. peki bir önceki satırı ve bir sonraki satırı en kolay yoldan nasıl çekerim ?
Mum_Chamber Mesaj tarihi: Aralık 6, 2004 Mesaj tarihi: Aralık 6, 2004 cursor kullanman gerekli. mysql_row_tell ve mysql_row_seek'e bir bakıver mysql.org'dan[signature][hline]en ince yerim bileğim..!?!
Rahan Mesaj tarihi: Aralık 6, 2004 Mesaj tarihi: Aralık 6, 2004 yanlış anlamış ta olabilirim ama WHER id>=(cid-1) AND id<=(cid+1) gibi bişi olabilir mi acaba istediğin? (gerçi sql e dokunmayalı çok uzun zaman oldu ama nese =P)[signature][hline]h u m a n i t y - i s - t h e - o n l y - s u p e r p o w e r !
Mum_Chamber Mesaj tarihi: Aralık 6, 2004 Mesaj tarihi: Aralık 6, 2004 sanırım md5li primary key kullandığı ve başka bir identifier satırı olmadığı için onu yapamıyor.[signature][hline]en ince yerim bileğim..!?!
Zopik Mesaj tarihi: Aralık 6, 2004 Konuyu açan Mesaj tarihi: Aralık 6, 2004 şimdi öle bişi rahan ama bu id ler sırayla giden sayılar değil ... dedim ya md5 ile cryptlenmiş veriler ...
sharky Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 @Rahan, OR o :) AND değil. Mmm.. Bence veritabanı tasarımında minik bir hata var.. Neden md5 ile hashlenmiş id leri tutuyorsun ki ? Onun yerine bir auto_increment kullansan, hem unique, hem de aritmetik işlemler yapabileceğin için çok daha rahat olurdu. Gel gelelim, eğer bu ID lerin hashlenmemiş hallerini biliyorsan ( örn : md5(5); falansa.) direk bir önceki ID yi hashleyerek veriyi çekebilirsin.. Haa direk timestamp 'i hashlemişsen, bilemiyorum tabii.. O zaman paşa paşa tüm veriyi çekip, PHP ile filter edeceksin.[signature][hline]>Ever heard of .cshrc? That's a city in Bosnia. Right? -- Discussion in comp.os.linux.misc on the intuitiveness of commands
mukus Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 eğer bir önceki md5 lenmiş veriyi biliyorsan; ulaşacağın satırdan bir önceki md5 e göre sorgunu yap ve sorguna "LIMIT 3" ü ekle, böylece ilk gelen satır n-1 , 2. satır n , ve üçüncü satır n+1 olur. Aslında sorduğun şey biraz mantıksız çünkü bu sıralama mutlaka bir alan referans alınarak yapılması lazım, öyle olmasaydı her "n" i sorgulattığında n-1 ile n+1 in farklı değerler alması gerekirdi.
Zopik Mesaj tarihi: Aralık 7, 2004 Konuyu açan Mesaj tarihi: Aralık 7, 2004 ya normal id lerde var elimde. fakat onlarda düzensiz gittiği için bunu yazdım. arada silinen kayıtlar var bu yüzden id ler 22 25 26 32 48 şeklinde gidior. aklımdan geçen şöyle bişeydi. ben bir satırı çekerim. hem veri gelir hemde o satırın kaçıncı satır olduğu. buna göre ben n-1 ve n+1 i çekebilirim şeklinde düşünmüştüm. diğer türlü sırayla giden kaydın id leri 12 22 52 ise 40 civarında sorgu yapmam gerekiyor her seferindeki bunu istemiyorum. olay bu yani. o yüzden id olarak masked_path yazdımki id kullan diye atlamayın diye ama işe yaramadı :-)
Rahan Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 said: sharky, 07 Aralık 2004 12:17 tarihinde demiş ki: @Rahan, OR o :) AND değil. ı ıı OR değil AND, iki koşulu da sağlaması gerekli. OR dersek cid harici bütün id leri almış oluruz. (tabi asıl soruyla alakasız oluo biraz bu)[signature][hline]h u m a n i t y - i s - t h e - o n l y - s u p e r p o w e r !
sharky Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 ı ıh OR. AND olsaydı ID değeri hem x hem de y olan row u göstermeye çalışırdı mysql, ki bir id tek değer alabilir. Ama OR olunca, id değeri x veya y olan rowları göstermeye çalışırdı. ya da elektrik makinalari çalışmaktan beynim akmış durumda ve sen doğrusunu söylüyorsun.[signature][hline]>Ever heard of .cshrc? That's a city in Bosnia. Right? -- Discussion in comp.os.linux.misc on the intuitiveness of commands
Rahan Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 ı ıh AND çünkü eşittir değil ordaki opertörler <= ve >= yani n-1 den büyük eşit VE n+1 den küçük eşit olan idleri almak istiyorum.[signature][hline]h u m a n i t y - i s - t h e - o n l y - s u p e r p o w e r !
GE-TA Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 Sharky mutlak eşitlik yok aralık verilmiş. Auto_inc'li bir field ekleyip tabloyu güncellediğimi hatırlıyorum MSSQL'de. Neredeyse 1 senedir kullanmıyorum ama öyle birşey mümkündü gibi. Gerçi MySQL ne alemdedir hiç bilmiyorum. Hiç bulaşmadım ona. :) Edit: Rahan ben mesajı yazıncaya kadar aynısı söylemiş zaten. :) Edit2: Sharky'e cevap babında. (Ulan bu editlerin herbirini 1 mesaj yapsaydım 500K madalyam olmuştu be pfff.) [signature][hline]In God I Trust For Rest I Just Test [Bu mesaj GE-TA tarafından 07 Aralık 2004 15:02 tarihinde değiştirilmiştir] [Bu mesaj GE-TA tarafından 07 Aralık 2004 15:04 tarihinde değiştirilmiştir]
sharky Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 Aaa operatorler => ve <= miş ya :) pardon pardon. Ben onları = gibi görüyorum :D[signature][hline]>Ever heard of .cshrc? That's a city in Bosnia. Right? -- Discussion in comp.os.linux.misc on the intuitiveness of commands
Zopik Mesaj tarihi: Aralık 7, 2004 Konuyu açan Mesaj tarihi: Aralık 7, 2004 süpersiniz. cevap vermek dışında herşeyi yapmışsınız. tapıyorum size. özellikle sana sharky. eğiliyorum önünde. her topicte bunu nasıl yapmayı başardığını lütfen banada söyle. bende yapmak istiyorum ...
mukus Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 şimdi neye göre bir üstteki veya bir alltaki row? onu önce bi söylemen lazım neye göre sıralanıyor bu rowlar? ek olarak bişey yok :) [Bu mesaj mukus tarafından 07 Aralık 2004 18:28 tarihinde değiştirilmiştir]
Mum_Chamber Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 e canım zopikçim bu olayı çözmedik miydik zaten. [code=php]$result = mysql_query( select id from bilmemne_tablosu where id = " . $id++ ); while( mysql_num_rows( $result ) == 0 ) { $result = mysql_query( select id from bilmemne_tablosu where id = " . id++ ); }[/code] diyerek bir sonrakini ya da -- yaparak bir öncekini alabilirsin. yok zaten cursor demiştik, onunla ilgili örnek için mysql.org'a bak. ama yapmayı düşündüğün şey için cursor çok gereksiz gibin :D[signature][hline]en ince yerim bileğim..!?! [Bu mesaj Mum_Chamber tarafından 07 Aralık 2004 18:37 tarihinde değiştirilmiştir]
Zopik Mesaj tarihi: Aralık 7, 2004 Konuyu açan Mesaj tarihi: Aralık 7, 2004 said: Zopik, 07 Aralık 2004 13:06 tarihinde demiş ki: ...ben bir satırı çekerim. hem veri gelir hemde o satırın kaçıncı satır olduğu. buna göre ben n-1 ve n+1 i çekebilirim şeklinde düşünmüştüm... çözdük mumi ona bişey demiyorum. ama biri şu yazdığıma cevap verir diye düşünmüştüm. akıllarına gelmemiş demekki :-p eğer bu tip birşey varsa neden boşu boşuna sorgu gönderelimki ?? ha yoksa böle bişi yok desin bende susayım :P herbişi merakımdan yani ...
Mum_Chamber Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 ben aradığımda bulamamıştım. aslında cursor mantığı da bunun için var. eğer satırlarla işin varsa (kolonlar ya da içindekilerle değil) o zaman cursor kullanıp ne istiyorsan kendin yapıyorsun. mysql.org'da sormak lazım aslında.[signature][hline]en ince yerim bileğim..!?!
adonis Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 bişi demedim. dermiş gibi yaptım. [signature][hline]There's someone who needs you. [Bu mesaj adonis tarafından 07 Aralık 2004 19:34 tarihinde değiştirilmiştir]
sharky Mesaj tarihi: Aralık 7, 2004 Mesaj tarihi: Aralık 7, 2004 O dediğin gibi bir şey var dendi, hatta AND ve OR olayları da bu yüzden tartışıldı ya ?[signature][hline]>Ever heard of .cshrc? That's a city in Bosnia. Right? -- Discussion in comp.os.linux.misc on the intuitiveness of commands
neter Mesaj tarihi: Aralık 8, 2004 Mesaj tarihi: Aralık 8, 2004 said: Zopik, 07 Aralık 2004 13:06 tarihinde demiş ki: ya normal id lerde var elimde. fakat onlarda düzensiz gittiği için bunu yazdım. arada silinen kayıtlar var bu yüzden id ler 22 25 26 32 48 şeklinde gidior. aklımdan geçen şöyle bişeydi. ben bir satırı çekerim. hem veri gelir hemde o satırın kaçıncı satır olduğu. buna göre ben n-1 ve n+1 i çekebilirim şeklinde düşünmüştüm. diğer türlü sırayla giden kaydın id leri 12 22 52 ise 40 civarında sorgu yapmam gerekiyor her seferindeki bunu istemiyorum. olay bu yani. o yüzden id olarak masked_path yazdımki id kullan diye atlamayın diye ama işe yaramadı :-) eğer böyle bir durum varsa iki kere select yapmak dışında bir çözüm yok, aynı query içinde de olsa iki select yapacaksın. burda da ortaya en baştan düşünmediğin ortaya çıkıyor veritabanı üzerinde eğer sen yazdıysan, çünkü zaten programlama hikayedir kuralları falan vardır yazarsın, ama veritabanı tamamen sana özel bişidir, her istediğini yapacak şekilde tasarlaman lazım. misal senin durumunda bütün satırları alt alta dizip order by hede diip, limit 42,3 desen 42 satırdan itibaren 3 tane gelir eline ama sanırım sen 42yi bulamıyorsun ? a. otur baştan tasarla, evet zor olacaktır ama bir çözüm üret, misal bir kolon daha koy order_id falan gibi, daha sonra her silinme de order_id leri ona göre düzelttir (trigger yazabiliyorsan yaz mysql 4 küsürden itibaren var) bölece order_id ye göre dizip küt diye çağırabilirsin. b. kulağını tersten göstermeye çalışıyor musun buna bak, illa bir yerde bir hata vardır. bir şekilde demin anlattığım 42. satırı aldırabilirsen küt diye çıkar her şey piyasaya. tavsiyem ilk denemelerini hep phpmyadmin üzerinde falan yap, php ile kasılma önce query yi bul sonra phpyi yaz. dediğim gibi kodlama hikayeyi yazma bölümü, önce kurgusunu kontrol et.
Zopik Mesaj tarihi: Aralık 8, 2004 Konuyu açan Mesaj tarihi: Aralık 8, 2004 yazıda baya ipucu var hoş olmuş :) evet limit olayı aklıma gelmemişti. 3 satırdan ortadakini çektiğime göre her seferde sonrakini limit ile öncekinide mumi nin yöntem ile alabilirim. LIMIT -1 şeklinde bir şey yok sanırım. daha önce denemiştim ... teşekkür ederim ...
Arthur_HellsFire Mesaj tarihi: Aralık 24, 2004 Mesaj tarihi: Aralık 24, 2004 limit ile olabilecek gibi bişi gözükmüyor bence idler karışık bence auto_increment bi alan daha belirlemen en iyi çözüm olur[signature][hline]Fire in the Darkness...
Öne çıkan mesajlar