@DPA;
@Zalmoxis; Hocam merhaba cevaplarınız için teşekkürler.
Burada ilişkili tablo derken stok adetleri için sql de toplam stok alanınını veren bir sutun yok. Sql de islemler ve adetler diye iki sutun çektim, işleme göre stok adetini php de hesaplıyorum, bunu sql yapmanın yolunu bulamadım. İsterseniz sql tablolarını da paylaşabilirim.
$sql = "stoklar LEFT JOIN stok_kategorileri ON stok_kategorileri.id=stoklar.urunKategori LEFT JOIN stok_depolari ON stok_depolari.id=stoklar.urunDepo LEFT JOIN stok_hareketleri as sh1 ON sh1.stokid=stoklar.id GROUP BY stoklar.id ";
$order = ['id','DESC'];
$column = $_POST['order'][0]['column']; // Column index
$columnName = $_POST['columns'][$column]['data']; // Column name
$columnOrder = $_POST['order'][0]['dir']; // asc or desc
if(isset($columnName) && !empty($columnName) && isset($columnOrder) && !empty($columnOrder)){
$order[0] = $columnName;
$order[1] = $columnOrder;
}
$orderby .= ' ORDER BY '.$order[0].' '.$order[1].' ';
if($_POST["length"]!="-1"){
$limit .= ' LIMIT '.$_POST["start"].', '.$_POST["length"];
}
$getTable = $yonetim->getJoinTable("stoklar.id, stoklar.kayitTarihi, stoklar.urunKodu, stoklar.urunAdi, stoklar.fiyat, stoklar.durum, stoklar.aciklama, stok_kategorileri.kategori, stok_depolari.kategori as raf, GROUP_CONCAT(sh1.islem) as islemler, GROUP_CONCAT(sh1.adet) as adetler",$sql.$orderby.$limit);
$response = [];
$response['data'] = [];
$response['recordsTotal'] = $yonetim->getColumn($sql);
$response['recordsFiltered'] = $yonetim->getColumn($sql);
foreach ($getTable as $row){
$stokCevaplar = explode(",", $row["islemler"]);
$stokAdetler = explode(",", $row["adetler"]);
$a=-1;
$adet=0;
foreach ($stokCevaplar as $sCevap){
$a++;
if($sCevap["islem"]=="1"){
$adet += $stokAdetler[$a];
}else if($sCevap["islem"]=="3"){
$adet -= $stokAdetler[$a];
}
}
$response['data'][] = [
'id' => $row["id"],
'urunAdi' => $row["urunAdi"],
'fiyat' => $row["fiyat"],
'adet' => $adet,
'raf' => $row["raf"],
'kategori' => $row["kategori"],
];
}
echo json_encode($response);