teşekkur ederım hocam bir sorunum daha var bu sorguyu php de nasıl alıcam normalde sorguları fetch ile alıyordum fakat bu sorgudan null donuyor bu sorgu fonksıyonum function sorgu bu sorgu kodlarım require_once ; $vt = new veri_islemleri ; $sorgu = $vt->sorgu("DROP TEMPORARY TABLE IF EXISTS tbl; CREATE TEMPORARY TABLE tbl ( sPersonelID varchar(255), sAdiSoyadi varchar(255), sKimlikNo varchar(255), SaatUcret float, Kesintiler float, CalisilanGun float, BrutMaas float, NetMaas float ); INSERT INTO tbl SELECT sPersonelID, sAdiSoyadi as sAdiSoyadi, sKimlikNo, sUcret,0,0,0,0 FROM tbPersonel where sdurum=1 and sFirma=1; UPDATE tbl t SET CalisilanGun = (SELECT sum FROM tbCalisma x WHERE t. sPersonelID = x. sPersonelID and MONTH =11 and YEAR =2018 ; UPDATE tbl t SET Kesintiler = (SELECT sum FROM tbAvans x WHERE t. sPersonelID = x. sPersonelID ); UPDATE tbl t SET BrutMaas = CalisilanGun SaatUcret ; UPDATE tbl t SET NetMaas=BrutMaas-(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END); SELECT sAdiSoyadi, sKimlikNo, ifnull(Kesintiler,0) as Kesintiler, ifnull(CalisilanGun,0) as CalisilanGun, ifnull(BrutMaas,0) as BrutMaas, ifnull(NetMaas,0) as NetMaas FROM tbl T"); while print_r(json_encode ; lazz tarafından 29/Kas/18 17:41 tarihinde düzenlenmiştir

<?php $sorgu = $vt->sorgu ; $sorgu = $vt->sorgu("CREATE TEMPORARY TABLE tbl( sPersonelID varchar(255), sAdiSoyadi varchar(255), sKimlikNo varchar(255), SaatUcret float, Kesintiler float, CalisilanGun float, BrutMaas float, NetMaas float );"); $sorgu = $vt->sorgu("INSERT INTO tbl SELECT sPersonelID, sAdiSoyadi as sAdiSoyadi, sKimlikNo, sUcret,0,0,0,0 FROM tbPersonel where sdurum=1 and sFirma=1;"); ?> gibi dener misin? |sadece aptalların başarısı ders notu ile lçülür|

@lazz rica ederim ne demek, sen halletmişsin zaten her şeyi. SQL Server'da da IfNull'a benzer IsNull ve MySQL'de de olan Coalesce'i kullanabilirsin bu arada, bunlar da daha okunaklı sorgu yazmanı sağlar, lazım olabilir ileride. Coalesce'in IfNull ve IsNull'dan farkı 2'den fazla kabul etmesi. İlk NULL olmayan değeri dndürür. Senin rneğinde SQL Server'da (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler yerine Coalesce(Kesintiler, '0') As Kesintiler veya sadece 2 parametre olduğundan IsNull(Kesintiler, '0') As Kesintiler kullanılabilir kısacası. Kolay gelsin. anlıyorum.

buda calışan hali DROP TEMPORARY TABLE IF EXISTS tbl; CREATE TEMPORARY TABLE tbl ( sPersonelID varchar(255), sAdiSoyadi varchar(255), sKimlikNo varchar(255), SaatUcret float, Kesintiler float, CalisilanGun float, BrutMaas float, NetMaas float ); INSERT INTO tbl SELECT sPersonelID, sAdiSoyadi as sAdiSoyadi, sKimlikNo, sUcret,0,0,0,0 FROM tbPersonel where sdurum=1 and sFirma=1; UPDATE tbl t SET CalisilanGun = (SELECT sum FROM tbCalisma x WHERE t. sPersonelID = x. sPersonelID and MONTH =MONTH(NOW and YEAR =YEAR(NOW ; UPDATE tbl t SET Kesintiler = (SELECT sum FROM tbAvans x WHERE t. sPersonelID = x. sPersonelID ); UPDATE tbl t SET BrutMaas = CalisilanGun SaatUcret ; UPDATE tbl t SET NetMaas=BrutMaas-(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END); SELECT sAdiSoyadi, sKimlikNo, (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler, (CASE WHEN CalisilanGun IS NULL THEN '0' ELSE CalisilanGun END) as CalisilanGun, (CASE WHEN BrutMaas IS NULL THEN '0' ELSE BrutMaas END) as BrutMaas, (CASE WHEN NetMaas IS NULL THEN '0' ELSE NetMaas END) as NetMaas FROM tbl T bu arada convert upper gıbı fonskyıonları kaldırdım

İşe ncelikle tbPersonel, tbCalisma ve tbAvans tablolarıyla birlikte Turkce_Kaldir'ı MySQL'de oluşturarak başlamalısın. Ondan sonra bu tabloların ve fonksiyonun MySQL create script'i ile soruyu güncellersen iyi bir yanıt alırsın. anlıyorum.

(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler bu ve benzerleri yerine ifnull(Kesintiler,0) as Kesintiler kullana bilirsin sanki teşekkurler suan daha temız kod oldu

teşşkur ederım hocam http://www.sqlines.com/online adresinden msqql kodlarımı mysql convert ettım daha sonra gene calısmadı DROP TEMPORARY TABLE IF EXISTS @tbl; CREATE TEMPORARY TABLE @tbl ( sPersonelID varchar(20), sAdiSoyadi varchar(20), sKimlikNo varchar(20), SaatUcret DOUBLE, Kesintiler DOUBLE, CalisilanGun DOUBLE, BrutMaas DOUBLE, NetMaas DOUBLE ) INSERT INTO @tbl SELECT sPersonelID, upper(dbo. Turkce_Kaldir as sAdiSoyadi, sKimlikNo, sSaatUcret,0,0,0,0 FROM tbPersonel where sdurum=1 UPDATE @tbl SET CalisilanGun = (SELECT sum FROM tbCalisma x WHERE t. sPersonelID = x. sPersonelID and MONTH =MONTH(convert( , GETDATE , 103)) and year =year(convert( , NOW , 103))) FROM @tbl t UPDATE @tbl SET Kesintiler = (SELECT sum FROM tbAvans x WHERE t. sPersonelID = x. sPersonelID and MONTH =MONTH(convert( , GETDATE , 103)) and year =year(convert( , NOW , 103))) FROM @tbl t UPDATE @tbl t SET BrutMaas = CalisilanGun SaatUcret UPDATE @tbl t SET NetMaas=BrutMaas-(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) SELECT sAdiSoyadi, sKimlikNo, (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler, (CASE WHEN CalisilanGun IS NULL THEN '0' ELSE CalisilanGun END) as CalisilanGun, (CASE WHEN BrutMaas IS NULL THEN '0' ELSE BrutMaas END) as BrutMaas, (CASE WHEN NetMaas IS NULL THEN '0' ELSE NetMaas END) as NetMaas FROM @tbl T bu kodların ıcındede msqql ait olan kodları duzenledıkten sonra çalıştı (@ işareti GetDATE , birde sorgu sonlarına ; işareti koyunca çalıştı)

(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler bu ve benzerleri yerine ifnull(Kesintiler,0) as Kesintiler kullana bilirsin sanki |sadece aptalların başarısı ders notu ile lçülür|

PHP'den çok anlamadığım gibi bir de zel bir class var, onun da davranışını bilmiyorum. PDO falan olsa daha aşinayım. Bence sen bunu yeni bir konu olarak PHP blümünde aç. anlıyorum.

daha nce yle bir işlem yapmadım. bilgim yok. ama şimdi test ettim grdüğüm kadarı ile bağlantı kapanınca geçici tabloda gidiyor. |sadece aptalların başarısı ders notu ile lçülür|

pekı pdo kullanrak bunun cıktısını nasıl alırız anlatabılırmsın

merhaba müritler DECLARE @tbl TABLE ( sPersonelID varchar(20), sAdiSoyadi varchar(20), sKimlikNo varchar(20), SaatUcret FLOAT, Kesintiler FLOAT, CalisilanGun FLOAT, BrutMaas FLOAT, NetMaas FLOAT ) INSERT INTO @tbl SELECT sPersonelID, upper(dbo. Turkce_Kaldir as sAdiSoyadi, sKimlikNo, sSaatUcret,0,0,0,0 FROM tbPersonel where sdurum=1 UPDATE @tbl SET CalisilanGun = (SELECT sum FROM tbCalisma x WHERE t. sPersonelID = x. sPersonelID and MONTH =MONTH(convert( , GETDATE , 103)) and year =year(convert( , GETDATE , 103))) FROM @tbl t UPDATE @tbl SET Kesintiler = (SELECT sum FROM tbAvans x WHERE t. sPersonelID = x. sPersonelID and MONTH =MONTH(convert( , GETDATE , 103)) and year =year(convert( , GETDATE , 103))) FROM @tbl t UPDATE @tbl SET BrutMaas = CalisilanGun SaatUcret FROM @tbl t UPDATE @tbl SET NetMaas=BrutMaas-(CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) FROM @tbl t SELECT sAdiSoyadi, sKimlikNo, (CASE WHEN Kesintiler IS NULL THEN '0' ELSE Kesintiler END) as Kesintiler, (CASE WHEN CalisilanGun IS NULL THEN '0' ELSE CalisilanGun END) as CalisilanGun, (CASE WHEN BrutMaas IS NULL THEN '0' ELSE BrutMaas END) as BrutMaas, (CASE WHEN NetMaas IS NULL THEN '0' ELSE NetMaas END) as NetMaas FROM @tbl T boyle bir kodum var bunu mysql gore nasıl cevırebılırım

gunaydın hocam bunuda denedım fakat olmadı cozumu ıse stored procedure kullanarak astım boyle sorgu kullanırken call fonksıyon(11,2018,1) yapmam yeterlı oluyor yardımların ıcın tesekkurler

<?php $host='host'; $dbname='database. adi'; $user='k. adi'; $pass='sifre'; $db=new PDO ; // pdo class ı oluşturuyoruz $query=$db->query ; // show databases kısmına sorgunu yapıştır dışarıdan parametre gelecekse prepare-bindparam-execute kullanmak gerekir güzenlik açısından $query=$query->fetchAll ; //buradan sonra dbden gelen data array şeklinde $query değişkenine aktardık?> yanlış hatırlamıyorsam pdo da $db->query ; gibi yapamıyordukmantıksız olduğunu biliyorum rneğe takılma $db->query ; $db->query ; şeklinde yapman lazım yani sorgunu parçalarına ayırman gerekecek e yoghrumlamam buakadar |sadece aptalların başarısı ders notu ile lçülür|

Bunu yarin denicem Ama baglanti kapanmadan bu isi nasil cozucem onu bulmam lazim

peki fonksiyonumda baglantıyı ıslemden sonra kapatıyorum bu temp table ıcın sıkıntı olurmu