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 09:52

float alandan sorgu çekebilmek

Mesaj gönderen sozgur »

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: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen husonet »

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: 3057
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: float alandan sorgu çekebilmek

Mesaj gönderen sabanakman »

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: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen esistem »

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 09:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur »

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: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen esistem »

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 09:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur »

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: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen esistem »

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 09:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur »

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: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: float alandan sorgu çekebilmek

Mesaj gönderen esistem »

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 09:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur »

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 09:52

Re: float alandan sorgu çekebilmek

Mesaj gönderen sozgur »

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