float alandan sorgu çekebilmek

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
Cevapla
sozgur
Üye
Mesajlar: 59
Kayıt: 26 Ağu 2011 08:52

float alandan sorgu çekebilmek

Mesaj gönderen sozgur » 27 Haz 2013 08:19

Merhabalar. Çok olmuyorumdur umarım ama bu site artık ne zaman sıkışsam yardım eden tek yer bana :)
Ben veritabanımda bazı alanları float olarak yaptım. Kayıt yaparken bir sıkıntı yaşamıyorum. Ama bir texte girdiğim sayılara (1,20 veya 2,50 gibi) göre sorgulama yaptığımda hiçbir sonuç dönmüyor. Halbuki text alanına direkt olarak alanda bulunan sayıyı örneğin 1.1 i giriyorum. php kodlarıyla daha zor olacağından ben sadece mysql sorgumu gönderiyorum. Direk veritabanından örneğin şu sql sorgusunu yaptığımda

SELECT id, lig, gun, tarih, bir, sifir, iki FROM iddaa WHERE bir>1;

bana sonuç dönüyor.Fakat şöyle bir sorgu yaptığımda

SELECT id, lig, gun, tarih, bir, sifir, iki FROM iddaa WHERE bir=1.1;

hiçbir sonuç dönmüyor. Halbuki ilgili 'bir' alanında 1.1 sayısı var.

Yardımcı olursanız sevinirim. Herkese iyi çalışmalar. (Alan tipi float - double olarak yapamadım o da ayrı bir konu ama şu an için önemli değil :))

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2961
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen husonet » 28 Haz 2013 08:49

Merhaba,

bir fieldında value olarak 1.1 e eşit veri varmı?

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3044
Kayıt: 17 Nis 2006 07:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: float alandan sorgu çekebilmek

Mesaj gönderen sabanakman » 28 Haz 2013 09:18

Alan değerini yuvarlayarak deneyin bir de "where Round(bir,1)=1.1" gibi...
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .

Kullanıcı avatarı
esistem
Üye
Mesajlar: 462
Kayıt: 02 Eki 2007 10:22
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen esistem » 28 Haz 2013 09:21

Selam;
konuyu yanlış anlamışım özür :)
büyük ihtimalle tabloda kayıtlı veriniz 1.1 değil, 1,1 olarak deneyin dicem ama onada gerek yok direk tabloya bakıp verinin ne şekilde kaydedilğini bence öğrenip ona göre davranın. veya sabanakman ın dediği gibi round ile yuvarlayıp aratın.

sozgur
Üye
Mesajlar: 59
Kayıt: 26 Ağu 2011 08:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur » 28 Haz 2013 10:07

evet tablomda 1.1 değeri var. arama alanında 1.1 de girdim 1,1 de ama olmadı. Peki roundu kullandığımda tam veriyi getirmeyecektir bana diye düşünüyorum. Yani 1.1 i yuvarladığında sonuçta başka bir değer gelecektir diye düşünüyorum. Yine de bir denicem.

Kullanıcı avatarı
esistem
Üye
Mesajlar: 462
Kayıt: 02 Eki 2007 10:22
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen esistem » 28 Haz 2013 10:09

bence önce select * from ile tüm kaydı alıp önce ekrana verin ki kayıt tam olarak nasıl girmiş onu görün ondan sonra işlem yapın

sozgur
Üye
Mesajlar: 59
Kayıt: 26 Ağu 2011 08:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur » 28 Haz 2013 04:29

maalesef sorun da burada işte normal koşulsuz bir select yaptığımda satırlarımı getiriyor. Fakat 'bir' alanından mesela 2,20 olanları getir dediğimde hiçbir cevap dönmüyor.
select * from iddaa; yaptığımda sorun yok
ama
select * from iddaa WHERE 'bir'=2,20; (veya bir=2,20 veya bir=2.20 veya 'bir'='2,20' vs.)
yaptığımda ekran bomboş kalıyor :(

Bu arada round fonksiyonunu denedim o da işe yaramadı..

Kullanıcı avatarı
esistem
Üye
Mesajlar: 462
Kayıt: 02 Eki 2007 10:22
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen esistem » 28 Haz 2013 04:41

tekrar selam,
ben iddaa sitemde alanları decimal (5,2) şeklinde tanıtmışım ve sorgumda aynen şu şekilde...

Kod: Tümünü seç

$mac=listevt("SELECT * from iddaa WHERE m1='".$alz[0][m1]."' AND m0='".$alz[0][m0]."' AND m2='".$alz[0][m2]."' AND iy<>'' $filt ORDER BY lig, tarih desc");
buradaki m1,m0 ve m2 alanları o maçların 1,0,2 değerlerini decimal (5,2) olarak tutuyor, 3,20 1,55 vs.vs. gibi.

sozgur
Üye
Mesajlar: 59
Kayıt: 26 Ağu 2011 08:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur » 28 Haz 2013 04:54

Alanlarımı decimal (5,2) olarak değiştirdim. Ama olmadı.

Sorgum da şöyle:
$sorgu = "SELECT id, lig, gun, tarih, bir, sifir, iki FROM iddaa WHERE bir='".$birisi[0][bir]."' ORDER BY id DESC";

Peki bu durumda benim kaydımda bir sıkıntı olabilirmi? Ben textten girilen değişkenleri şu şekilde kaydediyorum

$bir = str_replace(",",".",$_POST['bir']);

Sizce sorun burada olabilirmi? bunu kullanamamın sebebi de . yerine , kullanılabilmesiydi.

Kullanıcı avatarı
esistem
Üye
Mesajlar: 462
Kayıt: 02 Eki 2007 10:22
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen esistem » 28 Haz 2013 05:24

bende kayıtlar 3.10 1.80 3.75 vs.vs. şeklinde yani aynen sizin dediğiniz şekilde kaydetmişim bende, text ten gelen değişkende virgülü nokta yapmışım. Sizde başka bir sorun var sanırım, problemsiz çalışması lazım, veritabanına girip bakın kayıtlarınız ne şekilde diye ona göre davranın bence. Ben mysql, myisam tablo kullanıyorum.

sozgur
Üye
Mesajlar: 59
Kayıt: 26 Ağu 2011 08:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur » 28 Haz 2013 05:31

Anladım. kaydımda bir sıkıntı yok bu durumda. Gerekirse sayfayı ve queryi yeniden yazcam. Çok teşekkür ederim. Kolay gelsin.

sozgur
Üye
Mesajlar: 59
Kayıt: 26 Ağu 2011 08:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur » 28 Haz 2013 05:47

Oldu :9 nasıl oldu bilmiyorum ama oldu.. ilgilenen herkese çok teşekkür ederim. son yaptığım şey
sorgu textimi şu şekilde yazmaktı.
$birisi = str_replace(",",".",$_POST['bir']);
Ama ondan önce de birşeyler yaptım ama ne yaptım bilmiyorum :)

Cevapla