PHP ile Dinamik Sorgular

PHP ile Dinamik Sorgular,

Bazen sql ile herşeyi yapamayabiliriz. Daha seri ve
spesifik bir şekilde sorguları gönderip sonuclarına göre
belli tablolalara insert ,delete veya update yaptırabiliriz.
Bunu bir örnekle anlatmaya Çalışayım.

Ürnek: Bu php scriptinde amacımız yüz binlerce satırlık satislar tablomuzdan
bütün satışları Çekip, satis_detay tablosundan her satısın tutar bilgisini alıp,
satis_toplam tablosunda toplam_tutar kolonuna update etmek.

// Burada database mize connect yapıyoruz.

$satisConnect=mysql_connect(“localhost”, “root”,”123456â?²);
mysql_select_db(“satis”,$satisConnect);

// Burada satislar tablomuzdan satıslarımızı Çekiyoruz.

$sql=“select musteri_kodu,tarih,urun_kodu from satis.satislar
where tarih>=“2009-02-01â?²”;

// mysql_query() fonksiyonuzla query mizi Çalıştırıp sonucu $result değişkenine
atıyoruz.

$result=mysql_query($sql,$satisConnect);

// Burada select sonucunda gelecek her satır iÇin dönecek while döngüsü
kuruyoruz. Ve gelen her satır iÇin gelen datayı değişkenlere atıyoruz.

while($row=mysql_fetch_assoc($result)){
$tarih=$row[‘tarih’];
$musteri_kodu=$row[‘musteri_kodu’];
$urun_kodu=$row[‘urun_kodu’];

// Burada ise 2.query mizi gönderiyoruz fakat where condition kısmında
1.queryden gelen sonucları kısıt olarak veriyoruz.

$sql2=“select
musteri_kodu,
satıs_tarih,
urun_kodu,
urun_detay,
toplam_tutar
from satis.satis_detay
where
museri_kodu=“.$musteri_kodu.” and
urun_kodu=“.$urun_kodu.” and
tarih=““.$tarih.””“;

// Burada 2.query”, mysql_query() fonksiyonu ile Çalıştırıp, sonucu
$result2 değişkenine atıyoruz.

$result2=mysql_query($sql2,$satisConnect);

// Burada 2.query nin sonucu, her satır iÇin alacak 2.while döngümüzü kuruyoruz ve
dönen değerleri yeni değişkenlerimize atıyoruz.

while($row2=mysql_fetch_assoc($result2)){
$musteri_kodu2=$row2[‘musteri_kodu’];
$tarih2=$row2[‘tarih’];
$urun_kodu2=$row2[‘urun_kodu’];
$urun_detay=$row2[‘urun_detay’];
$toplam_tutar=$row2[‘toplam_tutar’];

// Burada satis_toplam tablomuza update yapacak 2.query mizi gönderiyoruz. Where
condition kısmında 2.Qery mizden gelen değerleri kısıt olarak veriyoruz.

$sql3=“update satis.satis_toplam
set toplam_tutar=$toplam_tutar
where urun_kodu=“.$urun_kodu2 .” and
musteri_kodu=“.$musteri_kodu2 .” and
tarih=““.$tarih2.””“;

// Burada ise update işlemi yapılıyor.

mysql_query($sql3,$satisConnect) or die(“e: “.mysql_error());

}
}
?>

Bu scripti satisHesapla.php ismiyle kaydettikten sonra konsoldan
php -f satisHesapla.php komut satırını girerek Çalıştırabilirsiniz.

Böylece Çok pratik bir şekilde ,sql ile saatlerimizi alacak bir işlemi
Çok kısa bir süre iÇinde halletmiş oluyoruz.

Bir sonraki makalelerde görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator