lostyazilim

Mysql'da sadece rakam (telefon numarası) girmek

15 Mesajlar 7.339 Okunma
lstbozum
wmaraci reklam

miharbisukarak miharbisukarak Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 27.11.2013
  • Yaş/Cinsiyet 35 / E
  • Meslek İnternet Danışmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 735
  • Beğeniler 121 / 106
  • Ticaret 6, (%100)
Merhaba;

Şöyle bir veritabanım var. Formdan gelen 11 haneli telefon numarasını kaydetmek istiyorum fakat sanırım tablo türü yanlış. Hangisini yapmalıyım? Boş veri girildiğinde 0 yazıyor ve belli bir rakam aralığı istiyor buda yanlış olmasına sebep oluyor. Mesela 0538 le başlayamıyor. Şuan türü int. Ne olması gerekiyor acaba?

İkinci bir sorum daha olacak. Formda input-text bölümünde sadece rakam girilebilmesini istiyorum sanırım maxlength="11" gibi bir tag la yapılıyor fakat bulamadım bilenler paylaşırsa sevinirim.



 

 

wmaraci
reklam

mustafanart mustafanart WM Aracı Kullanıcı
  • Üyelik 06.11.2013
  • Yaş/Cinsiyet 36 / E
  • Meslek Grafiker
  • Konum Ankara
  • Ad Soyad M** P**
  • Mesajlar 189
  • Beğeniler 2 / 53
  • Ticaret 0, (%0)
VARCHAR olması yeterli olacaktır. İkinci soruya gelince sanırım şu işini görür;
http://jsfiddle.net/viralpatel/nSjy7/
 

 

http://bit.ly/1dY0Cf6

MertKoseoglu MertKoseoglu Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 12.07.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek x
  • Konum Ankara
  • Ad Soyad M** K**
  • Mesajlar 659
  • Beğeniler 120 / 168
  • Ticaret 3, (%100)
Sadece rakam yazilmasini istiyorsan
http://www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input
bu eklentiyi kullanabilirsin. Ornegin ben http://www.mkoseoglu.com/hesap/ burada sadece islem yapmak istedigim karakterlerin yazilmasini sagladim. Kaynak kodlarini blogumdan bulabilirsin.

Veritabani turune gelecek olursak text veya int secebilirsin. Bos kaydedilmesi istemiyorsan telefon degiskenini empty(); ile kontrol edebilirsin. Eger bos kaydedilebilir ama 0 olarak kaydedildiginde sikinti oliyor dersen post methodu ile cektigin telefon degiskeni denk ise 0 a veritabanina telefon no yok seklinde uyari yazdirabilirsin. Veya telefon numarasini db den cekerken eger 0 a denk ise telefon no yok yazdirabilirsin.
 

 

miharbisukarak miharbisukarak Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 27.11.2013
  • Yaş/Cinsiyet 35 / E
  • Meslek İnternet Danışmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 735
  • Beğeniler 121 / 106
  • Ticaret 6, (%100)

MertKoseoglu adlı üyeden alıntı

Sadece rakam yazilmasini istiyorsan
http://www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input
bu eklentiyi kullanabilirsin. Ornegin ben http://www.mkoseoglu.com/hesap/ burada sadece islem yapmak istedigim karakterlerin yazilmasini sagladim. Kaynak kodlarini blogumdan bulabilirsin.

Veritabani turune gelecek olursak text veya int secebilirsin. Bos kaydedilmesi istemiyorsan telefon degiskenini empty(); ile kontrol edebilirsin. Eger bos kaydedilebilir ama 0 olarak kaydedildiginde sikinti oliyor dersen post methodu ile cektigin telefon degiskeni denk ise 0 a veritabanina telefon no yok seklinde uyari yazdirabilirsin. Veya telefon numarasini db den cekerken eger 0 a denk ise telefon no yok yazdirabilirsin.


İlk örnek için teşekkürler inceleyeceğim. Şöyle izah edeyim o zaman telefon no yok gibi bir durum söz konusu olmuyo. Şöyle ki WhatsApp'ını paylaşmak isteyenler telefon numarasını yazıyor onu inputta kısıtlayabilirim sanırım en az 3 karakter en fazla 11 karakter girebilir şeklinde. Benim sıkıntım veritabanına kaydederken formdan boş veri gönderirsem 0 yazdırıyor. Fakat tablo da türü'nü değiştirirsem sanırım bu sıkıntıda ortadan kalkacak.

Verdiğin örnekte sadece rakam ve 11 karakter ile kısıtlarsam form dışında zaten veritabanına giriş olmayacağı için problem olmaz sanırım.
 

 

wmaraci
wmaraci

soulmy soulmy WM Aracı Kullanıcı
  • Üyelik 12.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Öğretmen
  • Konum Samsun
  • Ad Soyad O** Y**
  • Mesajlar 1722
  • Beğeniler 398 / 400
  • Ticaret 20, (%100)
Tablo yapısında

Türü int(11),

Öznitelikler değerini UNSIGNED ZEROFILL yapın

Bu şekilde yapınca:

Eğer girdi 5351234567 yazılırsa, 05351234567 olacak.

Eğer girdi 1234567 yazılırsa, 00001234567 olacak.

Yani ne yazılırsa mutlaka 11 haneli sayıya tamamlanacak.
 

 

.

  • Üyelik 10.11.2024
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar
  • Beğeniler /
  • Ticaret , (%)
pattern="[0-9]{3,11}"

bunu input tagının içine koyarsan en az 3 en fazla 11 karakter 0-9 arası sayı girmek zorunda kalırlar.
 

 

miharbisukarak miharbisukarak Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 27.11.2013
  • Yaş/Cinsiyet 35 / E
  • Meslek İnternet Danışmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 735
  • Beğeniler 121 / 106
  • Ticaret 6, (%100)

mamiysr adlı üyeden alıntı

pattern="[0-9]{3,11}"

bunu input tagının içine koyarsan en az 3 en fazla 11 karakter 0-9 arası sayı girmek zorunda kalırlar.


Bunu yaptığımda. mesela ben 11111111111 yazdığımda veritabanına 2147483647 kaydediyor?

Ek Olarak:

soulmy adlı üyeden alıntı

Tablo yapısında

Türü int(11),

Öznitelikler değerini UNSIGNED ZEROFILL yapın

Bu şekilde yapınca:

Eğer girdi 5351234567 yazılırsa, 05351234567 olacak.

Eğer girdi 1234567 yazılırsa, 00001234567 olacak.

Yani ne yazılırsa mutlaka 11 haneli sayıya tamamlanacak.


Şöyle açıklayayım 1 tane input formum var ne eksik ne fazla tam 11 rakam (telefon numarası) girilebilmesini istiyorum. Sanırım böyle daha açıklayıcı oldu. Söylediğinizi tam anlamadım çünkü yapmak istediğim şey o değildi.
 

 

  • Üyelik 10.11.2024
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar
  • Beğeniler /
  • Ticaret , (%)

miharbisukarak adlı üyeden alıntı

Bunu yaptığımda. mesela ben 11111111111 yazdığımda veritabanına 2147483647 kaydediyor?

Ek Olarak:

Şöyle açıklayayım 1 tane input formum var ne eksik ne fazla tam 11 rakam (telefon numarası) girilebilmesini istiyorum. Sanırım böyle daha açıklayıcı oldu. Söylediğinizi tam anlamadım çünkü yapmak istediğim şey o değildi.


debug yap, aldıgın veriyi dbye kaydetmeden önce echo ile ekrana bas, eger yazdıgınla okudugun veri dogruysa db ile ilgili bir sıkıntı
 

 

soulmy soulmy WM Aracı Kullanıcı
  • Üyelik 12.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Öğretmen
  • Konum Samsun
  • Ad Soyad O** Y**
  • Mesajlar 1722
  • Beğeniler 398 / 400
  • Ticaret 20, (%100)

miharbisukarak adlı üyeden alıntı

Bunu yaptığımda. mesela ben 11111111111 yazdığımda veritabanına 2147483647 kaydediyor?

Ek Olarak:

Şöyle açıklayayım 1 tane input formum var ne eksik ne fazla tam 11 rakam (telefon numarası) girilebilmesini istiyorum. Sanırım böyle daha açıklayıcı oldu. Söylediğinizi tam anlamadım çünkü yapmak istediğim şey o değildi.


Ben olayı farklı algılamışım.

2147483647 sorunu için, türü bigint yapıp dener misin?
 

 

.

miharbisukarak miharbisukarak Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 27.11.2013
  • Yaş/Cinsiyet 35 / E
  • Meslek İnternet Danışmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 735
  • Beğeniler 121 / 106
  • Ticaret 6, (%100)

soulmy adlı üyeden alıntı

Ben olayı farklı algılamışım.

2147483647 sorunu için, türü bigint yapıp dener misin?


Şimdi oldu sanırım ne yazıyorsam onu giriyor. 0 la başladığında 0 ı almıyor 10 haneye düşürüyor. yani ister 0 yazsın ister 0 olmadan yazsın 10 karakteri formda ne yazıyorsa yazdırıyor eğer sıfırdan başka bir değer girilirse mesela 1 yazarsan onu yazdırıyor.

05384575767 yazarsan 10 karakter yazdırıyor
15384575767 yazarsan 11 karakter yazdırıyor
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al