Php'de Bir Fonksiyonun Kullanımı
-
function VeriOkuCoklu($tablo,$sart=array(),$sartkarsilik=array(),$operator="",$order="",$ordertur="",$limit="") { $this->bilgial=null; if(count($sart)==0) { if($order=="") { $sorgu = "SELECT * FROM $tablo"; } else { if($limit=="") { $sorgu = "SELECT * FROM $tablo ORDER BY $order $ordertur"; }else { $sorgu = "SELECT * FROM $tablo ORDER BY $order $ordertur LIMIT $limit"; } } foreach($this->baglan->query("$sorgu",PDO::FETCH_OBJ) as $row) { @$this->bilgial[]=$row; } }else { $birlestir =""; if($order=="") { foreach($sart as $sartal) { if($operator=="") { $birlestir .= $sartal."=? AND "; }else { $birlestir .= $sartal."$operator? AND "; } } $kes = trim(substr($birlestir,0,-4)); $sorgu = "SELECT * FROM $tablo WHERE $kes"; }else { foreach($sart as $sartal) { if($operator=="") { $birlestir .= $sartal."=? AND "; }else { $birlestir .= $sartal."$operator? AND "; } } $kes = trim(substr($birlestir,0,-4)); if($limit=="") { $sorgu = "SELECT * FROM $tablo WHERE $kes ORDER BY $order $ordertur"; }else { $sorgu = "SELECT * FROM $tablo WHERE $kes ORDER BY $order $ordertur LIMIT $limit"; } } $alancek = $this->baglan->prepare("$sorgu"); $alancek->execute($sartkarsilik); while($row = $alancek->fetch(PDO::FETCH_OBJ)) { $this->bilgial[] = $row; } } }
fonksiyon bu..
Yigit tarafından 25/Eyl/19 18:06 tarihinde düzenlenmiştir
Ben bu fonksiyon içine ek bir koşul koymak istiyorum
WHERE parite=TOPLAM şeklinde..
nasıl yapabilirim? -
function VeriOkuCoklu($tablo, $sart = array(), $sartkarsilik = array(), $operator = "", $order = "", $ordertur = "", $limit = "") { $this->bilgial = null; if (count($sart) == 0) { if ($order == "") { $sorgu = "SELECT * FROM $tablo"; } else { if ($limit == "") { $sorgu = "SELECT * FROM $tablo WHERE parite=TOPLAM ORDER BY $order $ordertur"; } else { $sorgu = "SELECT * FROM $tablo WHERE parite=TOPLAM ORDER BY $order $ordertur LIMIT $limit"; } } foreach ($this->baglan->query("$sorgu", PDO::FETCH_OBJ) as $row) { @$this->bilgial[] = $row; } } else { $birlestir = " parite=TOPLAM AND "; if ($order == "") { foreach ($sart as $sartal) { if ($operator == "") { $birlestir .= $sartal . "=? AND "; } else { $birlestir .= $sartal . "$operator? AND "; } } $kes = trim(substr($birlestir, 0, -4)); $sorgu = "SELECT * FROM $tablo WHERE $kes"; } else { foreach ($sart as $sartal) { if ($operator == "") { $birlestir .= $sartal . "=? AND "; } else { $birlestir .= $sartal . "$operator? AND "; } } $kes = trim(substr($birlestir, 0, -4)); if ($limit == "") { $sorgu = "SELECT * FROM $tablo WHERE $kes ORDER BY $order $ordertur"; } else { $sorgu = "SELECT * FROM $tablo WHERE $kes ORDER BY $order $ordertur LIMIT $limit"; } } $alancek = $this->baglan->prepare("$sorgu"); $alancek->execute($sartkarsilik); while ($row = $alancek->fetch(PDO::FETCH_OBJ)) { $this->bilgial[] = $row; } } }
Bir dene hocam
Edit söylemeden geçmeyeceğim, hocam kod çok kötü sen yazdı isen de daha güzel kodlayabilirsin burayı diye düşünüyorum. Parametreler gönderip bu parametrelere göre işlem yap miss gibi SQL INJECTİON Var. Gerçi PDO Kullanıyorsun ama gene de düzelt. Ben beğenmedim kodlamanı :P
Amacım aşağılamak falan değil hocam yanlış anlama beni...
MhmdAlmz tarafından 25/Eyl/19 18:13 tarihinde düzenlenmiştir -
kod benim değil bir arkadaş ücreti karşılığında yazmıştı.
Zaten uzman değilsek de anlayan biri olarak fonksiyona bakarak bile yapamadım istediğim şeyi. Kendi anlayacağı şekilde hazır fonksiyonlar üretip saklamış muhtemelen.
Bu arada senin gönderdiğin de olmadı. @mhmdAlmz -
işteyim çok bakamadım ama geçiçi olarak şey yapabilirsin tablo yerine kendi query ni var parantez içinde,
veriOkuCoklu("(select * from tablo_adi where parite='TOPLAM')", $diger, $parametreler)
-
yolbulucunun dediği de olmadı.
Ne cins kod bu arkadaş :D
iç içe foreach'ler olmasa bi nebze kendi sorgumu yazıcam ama iç içe foreachler kafamı karıştırıyor. -
Yigit bunu yazdı
yolbulucunun dediği de olmadı.
Ne cins kod bu arkadaş :D
iç içe foreach'ler olmasa bi nebze kendi sorgumu yazıcam ama iç içe foreachler kafamı karıştırıyor.Hocam akşam bakalım benimkinin çalışması lazım tekrar baktım ama. Problem başka olabilir.
-
Yigit bunu yazdı
kod benim değil bir arkadaş ücreti karşılığında yazmıştı.
Zaten uzman değilsek de anlayan biri olarak fonksiyona bakarak bile yapamadım istediğim şeyi. Kendi anlayacağı şekilde hazır fonksiyonlar üretip saklamış muhtemelen.
Bu arada senin gönderdiğin de olmadı. @mhmdAlmzabi bi arkadaşına şu yazıyı yolla bi baksın
https://code.tutsplus.com/tutorials/top-15-best-practices-for-writing-super-readable-code--net-8118
-
Hoca soyle olcak:
VeriOkuCoklu(tabloismi,"parite=toplam",digerleri)
-
emirhan-exp bunu yazdı
Hoca soyle olcak:
VeriOkuCoklu(tabloismi,"parite=toplam",digerleri)
2. parametre array? olsa olsa ['parite' => 'toplam'] olur
ki kodu inceledim, gelen veri array olacak yine ama key val seklinde degil direkt val seklinde. ["'parite' = 'toplam'"]
end tarafından 27/Eyl/19 00:44 tarihinde düzenlenmiştir -
Hayir,oyle degil end hocam.array olan ici degil.stringin kendisi boyle,ikiden fazlaysa array olarak tanitilmasi lazim.
Zaten array tek elemansa boyle de yazilabiliyor
-