Number ve Range
3 dk okuma
Number ve Range ikisi de gerçek bir sayıyı sayısal bir sütunda saklar; böylece metni dönüştürmeden bunlara göre filtreleme ve sıralama yapabilirsiniz (örneğin "500'ün altındaki fiyat"). Aynı şekilde davranırlar ve yalnızca denetimde ayrılırlar: Number yazılan bir girdi, Range bir kaydırıcıdır.
Number | Range | |
|---|---|---|
Tür kimliği |
|
|
Varsayılan sütun |
|
|
Denetim |
|
|
Güvenli tür değişiklikleri | Range, Text, Text area, Email, URL, Password | Number, Text, Text area, Email, URL, Password |
İkisinin de kendi Type settings ayarı yoktur. Min value, Max value ve Step seçeneklerini Validation sekmesinde kullanın (bkz. Her alanın ortak ayarları).
Sütun türü
Varsayılan DECIMAL(20,6) ondalık noktadan önce 14 basamağa ve sonra 6 basamağa kadar tutar. Alanın SQL sütun seçeneklerinde başka bir sayısal tür seçebilirsiniz: INT, BIGINT, TINYINT, SMALLINT, MEDIUMINT, FLOAT, DOUBLE veya DECIMAL(p,s); negatif sayıları yasaklamak için unsigned kutusunu işaretleyin. Sayımlar ve kimlikler için tam sayı türünü, para için DECIMAL türünü seçin.
Kullanılabilir sütun fonksiyonları: abs (mutlak değeri saklar) ve rand (değer boşsa 0 ile 1 arasında rastgele bir sayı saklar).
Kaydederken ne olur
- Değer sayısal olmalıdır.
abcgibi metinler, boş bir kutu ve sonsuz değerler boş bir alan kaydeder. Bilimsel gösterim (1e3) kabul edilir. - Sayı, sütunun aralığına sıkıştırılır.
TINYINT UNSIGNEDiçin bu 0 ile 255,INTiçin yaklaşık artı eksi 2,1 milyardır. Sütunun dışında kalan bir değer hiçbir zaman veritabanı hatasına yol açmaz; izin verilen en yakın değere getirilir. - Eğer Min value veya Max value ayarlıysa sayı o aralığa da sıkıştırılır.
- Veritabanı, sütunun hassasiyetine yuvarlar (tam sayı sütunu
12.7değerini13yapar;DECIMAL(20,6)altı ondalık tutar).
Step sunucuda uygulanmaz. Yalnızca tarayıcı denetimine yol gösterir. 12 değeri, step 5 olsa bile kaydedilir. Gerekiyorsa kendi kodunuzda sıkıştırın veya yuvarlayın.
Sıfırın altındaki değerler işaretli bir sütun gerektirir: Min value negatifse SQL sütununun unsigned olmadığından emin olun.
Geri okuduğunuz değer
wpmcf_get_field(), saklanan sayı tam sayıysa bir int, değilse bir float döndürür. Veritabanının DECIMAL sütununda "300.000000" olarak bildirdiği değer 300 olarak döner.
Kaydedilen | Dönen |
|---|---|
|
|
|
|
|
|
|
|
|
|
Şablonda kullanım
$price = wpmcf_get_field( 'product', 'price' ); // 19.9 (float) or 20 (int) or null
if ( null !== $price ) {
echo esc_html( number_format_i18n( $price, 2 ) ); // 19.90 in your site's locale
}
wpmcf_the_field( 'product', 'price' ); // <span class="wpmcf-field-value">19.9</span>[wpmcf_field group="product" field="price"]Yazdırılan değer, binlik ayırıcısız ve sondaki sıfırlar olmadan düz sayıdır (1234.50, 1234.5 olarak yazdırılır). Para birimi veya birimler için Prefix (örneğin $) ve Suffix değerlerini Display sekmesinde ekleyin ya da sayıyı şablonunuzda biçimlendirin.
Düzenleme ekranı
- Number: bir sayı girdisi. Step ayarlı değilse ondalıkları kabul eder (
step="any"). Min value, Max value ve Step sırasıylamin,maxvestepöznitelikleri olur. Editör bir şey yazana kadar number alanı boştur. - Range: bir kaydırıcı (klasik stilde 200 piksel genişliğinde, modern stilde eklenti tarafından biçimlendirilir). Geçerli sayıyı göstermez. Min value ve Max value ayarlayın: bunlar olmadan tarayıcı 0 ile 100 aralığını kullanır.
Tarayıcı her zaman kaydırıcının konumunu gönderir; bu nedenle nesneyi kaydetmek, editör ona hiç dokunmamış olsa bile kaydırıcının geçerli değerini saklar. "Cevap yok" durumu mümkün olmalıysa Number alanı kullanın.
İçe aktarma
CSV içe aktarmaları (örneğin Pro veri kaynakları) 1 234,5 biçimindeki hücreleri kabul eder ve 1234.5 olarak saklar.
Sorun giderme
- Ondalıklarım kesiliyor.
DECIMAL(20,6)altı ondalık tutar; tam sayı sütunu hiç tutmaz. Alanın SQL sütun seçeneklerinden SQL türünü değiştirin. - Negatif bir sayı 0 olarak kaydediliyor. Sütun unsigned. unsigned işaretini kaldırın veya işaretli bir tür seçin. Bkz. Alan grupları.
- Max value değerimin üzerindeki bir sayı en büyük değer olarak kaydedildi. Bu, amaçlanan sıkıştırmadır.
- Değer PHP'de
null. Hiçbir şey kaydedilmedi veya metin sayısal değildi.
Hâlâ takıldınız mı? Destek ile iletişime geçin