![]()
From: Yüksel ÖZCAN (yukselozcan@celiknet.com)
Date: Fri 19 Dec 2003 - 11:32:54 EST
Hasan bey selamlar,
> Bir de b=F6yle deneyin bu =FEekil bende =E7al=FD=FE=FDyor
>
> if (mysql_num_rows(mysql_query("SELECT * FROM tablo ..."))) {
> echo "Kay=FDt var";
> }else{
> echo "Kay=FDt yok";
> }
Maalesef yolladiginiz kod isimi gormez. Benim query'm her halikarda 1 satir
getiriyor. query "select sum(borc) ... seklinde oldugu icin sartlar
gerceklesse de gerceklesmese de 1 tek satir sonuc geliyor. Sartlar
gerceklesirse borc sutununun toplamini gerceklesmesse de null olarak
geliyor. Ben sorunumu hallettim. ilk baslarda ben de boyle dusundum,
halledemedim. sonra donen sonucun icerigini kontrol etmeyi de basardim.
donen sonucu "null mu" diye kontrol edince oluyor. num_rows degiskeni de
surekli olarak 1 sonucunu dondurecektir, demeyin. db'de bir tablo yapin,
kolonlardan birinin tipi bigint, digerinin ki de varchar olsun, sonra bunu
"select sum(bigint_kolonu) from tablonuz where varchar_tablosu='kosulunuz'"
seklinde calistirin ve sizin dongunuzu calistirin. Kosulunuz ne olursa olsun
1 sonuc donuyor. yine de tesekkur ederim.
>
> Hasan Basri Ate=FE
> Sistem M=FCd=FCrl=FC=F0=FC
> =DDnternet Grubu
> 1322
>
> -----Original Message-----
> From: linux-programlama-bounce@liste.linux.org.tr =
> [mailto:linux-programlama-bounce@liste.linux.org.tr] On Behalf Of =
> Y=FCksel =D6ZCAN
> Sent: 17 Aral=FDk 2003 =C7ar=FEamba 15:23
> To: linux-programlama@liste.linux.org.tr
> Subject: [linux-programlama] MySQL'den donen sonuclar
>
> Herkese selam,
> MySQL'de soyle bir sorgu calistiriyorum.
>
> select FORMAT(SUM(borc), 0), FORMAT(SUM(alacak), 0), =
> FORMAT(SUM(borc-alacak), 0), SUM(borc), SUM(alacak) from cari_hareketler =
> where cari_id=3D'cari_idsi' and tarih < 'ekstre_baslangici'
>
> Sorguda herhangi bir problem yok. Sorgu kisaca istenilen cari hesaba ait =
> hareketlerin belirtilen tarihten oncesine ait olanlarinin borc ve alacak =
> hareketlerinin toplamini alarak getiriyor, yani yuzlerce hareket te olsa =
> bana tek bir sonuc donuyor. Buraya kadar bir problemim yok. Sorun =
> surada; belirtilen tarihten oncesine ait hareket varsa bunlari guzel =
> guzel toplayip karsima getiriyor, fakat belirtilen tarihten once =
> herhangi bir hareket yoksa o zaman karsima asagidaki gibi bir sonuc =
> getiriyor.=20
>
> Hareket varsa : 125.253.456.768 120.254.646.786 =
> 4.998.809.982 125253456768 120254646786
> Hareket yoksa : NULL NULL =
> NULL NULL NULL
>
> Bunlari mysql'e terminalden girerek aldim. Bunlari program icinde =
> calistirdigimda NULL olan isleme ait hicbir denetleme yapamiyorum. Bu =
> sonuclarin null olup olmadigin ogrenmek icin if(mysql_row[0] =3D=3D =
> NULL) yaptim olmadi, if(mysql_row[0] !=3D NULL) yaptim yine olmadi, =
> if(!mysql_row[0]) yaptim yine olmadi. Bu sorun neden kaynaklaniyo =
> olabilir. Hicbir denetleme yontemini bu NULL olan degiskenlere =
> uygulamadim. Dedigim gibi NULL bilgisini terminalden mysql'e giripte =
> sorgulama yaptigimda aliyorum, c ile yazilmis programimda bu NULL =
> degerinin degiskene atanmamasi gibi bir durum var sanirim ortada. Daha =
> once boyle bir sorunla karsilasan oldumu ? Yardim ederseniz sevinirim, =
> herkese kolay gelsin
>
> Yuksel OZCAN
> http://muhasebeci.sf.net
>
>
>
>
![]()