Merhaba arkadaşlar,
Sayfa id lerim aşağıdaki gibi rakamlardan oluşuyor.
Örnek: sayfa.php?id=123
Ben bunu hem rakam hem harf yapabilirmiyim?
İstediğim Örnek: sayfa.php?id=A1B2C3
Teşekkürler.
Mysql-PHP id 'ye rakam yerine harf tanımlama yardım
15
●2.362
- 07-05-2014, 14:55:55Hem rakam hem harf yapma amacın nedir bunu belirt yardımcı olabilelim.
url sayfa.php?id=123 diyelim burada ki id değerinin içerisinde ki 123'ü alıp veritabanından ona uygun verileri getiriyor diyelim.
Sen bunun hem harf hem rakam olmasını istiyorsan veritabanın'da kayıtlı olarak bulunan 123 değerini'de değiştirmen gerekecek hem harf hem rakam olarak sonuçta karşılaştırmalı veri çekiyor.
He yok ben sadece url'de rakamların gözükmesini istemiyorum harfler'de olsun fakat gösteriş olsun diyorsan yardımcı olabilirim.
URL'de böyle gözükür = 1ABF2F3
Fakat kodların onu böyle algılar = 123 - 07-05-2014, 15:00:39Mesela 8 karakterli random sayı ve harf üreten bir kod yaz. Veritabanında tablolarına benzersiz_id diye bir sütun aç. Her veri girişinde benzersiz_id kısmına bu 8 karakterli veri girilsin.
Linkleri yazdırırken ["id"] değilde ["benzersiz_id"] şeklinde yazdırabilirsin.
Kendi sitemde öyle kullanıyorum: www.mailcaptcha.com http://www.mailcaptcha.com/Mail.aspx?id=KF0XN86E gibi mesela
Not: php bilmiyorum, mantığını anlattım. - 07-05-2014, 15:10:50Üyeliği durdurulduaslında bu yapılabilir (son cümlemi de okumalısın)
veritabanında tuttuğumuz herhangibir veriyi daha sonra yeniden çağırmak için verinin bulunduğu satırdaki herhangibir değere atıfta bulunmamız gerekir. Bu değer benzersiz olmazsa çakışacaktır. bu nedenle id değerini kullanırız. İdler sistem tarafından otomatik olarak öncekinin 1 fazlası şeklinde verildiğinden asla çakışmazlar. yani aynı id başka bir veriye gitmez.
Senin bunu yapabilmen için 2 farklı yol gösterebilirim.
ID'leri otomatik yapmayı devre dışı bırakıp bir kod bloğu ile 3 harf 2 rakam gibi bir algoritma yazıp kendin oluşturabilirsin. ama bu ileride çakışacaktır. Zor da olsa yıllar sonra da olsa bir gün çakışacaktır. bu nedenle bunu kullanamazsın.
bir diğer yol ise veritabanında id alanını bozmayıp id dışında başka bir değerden daha veri eklemek ve bir procedure ile bunu ayrıştırmak olacaktır. mesela başlık sütununun ilk üç harfi vs gibi. bu durumda çakışma yaşanmaz istediğin sonucu da alırsın. ancak bir sürü gereksiz kod yazman gerekeceğinden sistem performansını olumsuz etkileyecektir.
son bir yol da bazen kullanılır id'yi çakışmayacak bir şekilde formulize etmektir. gün ay yıl saat dakika saniye gibi değerleri karıştırıp ortaya bir sonuç çıkarabilirsin.
ilk yöntem sistemi bozacağı ve diğer iki yöntem ekstra yük getireceği için kullanılamaz.
Arkadaşın yazdığı gayet makul ve mantıklı
tabi böyle birşey istemek yerine daha anlamlı url yönlendirmeleri yapmak istemiyorsan bunu yapabilirsiniz.BR9 adlı üyeden alıntı: mesajı görüntüle
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:10:50 -->-> Daha önceki mesaj 15:09:24 --
ne kadar karmaşıkta olsa bu matematiksel olarak benzersiz olamaz.tolgasen adlı üyeden alıntı: mesajı görüntüle
GUID veriler araştırılabilir konuyla ilgili. %100 benzersiz olduğu konusunda bir çok insan hem fikir. ama bu da kesin doğru değil. - 07-05-2014, 15:17:33Üyeliği durdurulduevet haklısın mantık olarak böyle çalısılıyor ama "yazılımcı olmak" burada bizi sıkıntıya sokuyor. bin defa üst üste sistemde var olan bir id'yi atama ihtimali var.tolgasen adlı üyeden alıntı: mesajı görüntüle
bir milyon farklı veritabanında 100 yılda 1 defa böyle birşey belki olur. ama ihtimali var. yine de projenin önemine göre bunu göz önünde tutmakta fayda var
guid'in benzersizliğinin tartışıldığı bir konuda..
ha bu kadar ince hesaba gerek yok aslında ama ne için istediğini yazmayınca ben ihtimalleri söylemek istedim.
şunu da ekeleyeyim. eğer gerekli bir şey değilse maskeli yönlendirme en pratik çözüm olur. ne kadar az yazılırsa o kadar faydalıdır sisteme - 07-05-2014, 15:40:41Cevaplar için çok teşekkür ederim.BR9 adlı üyeden alıntı: mesajı görüntüle
Aslında gösteriş olsun diye değil ancak sorgulama yaparken harflerinde olması gerekiyor. Yardımcı olursan memnun olurum.
Biraz araştırdım, "id"lerin sayılardan oluşması zorunlu ama başka bir sütun ile eşitlenebiliyormuş. Örneğin "diger_id" Bu "diger_id" ye 1A2B3B yi ekleyip eşitlenebiliyormuş. Ama örneğine rastlayamadım. - 07-05-2014, 15:45:13Üyeliği durdurulduek bilgi olsun.Chapa adlı üyeden alıntı: mesajı görüntüle
böyle bir zorunluluk yok.
21EC2020-3AEA-1069-A2DD-08002B30309D bu bir id dir. - 07-05-2014, 15:47:40BR9 adlı üyeden alıntı: mesajı görüntüleAncak 1A2B3C 'yi "id" olarak girdiğimde sayfa.php?id=1A2B3C çalışmıyor.gallisene adlı üyeden alıntı: mesajı görüntüle