drasebt1835 2017-01-20 15:09
浏览 31

删除在while循环中无法正常工作

here i am trying to delete from detail table here is one problem with my code if detail table have three records than only delete one record from detail table.and also it does not effect other two records in stock table.. Only one first record this code work properly after that it does not work in for delete query from detail table and not effected in stock table...

<?php
include("include/config.inc.php");


$purchaseMasterId = isset($_REQUEST['purchaseMasterId']) ? $_REQUEST['purchaseMasterId'] : 0;

if($purchaseMasterId > 0) {
    $k = 0;
    $selectMaster = "SELECT purchasedetail.purchaseMasterId, colorId, 
                            totalkg, purchaseDetailId, partyId
                    FROM purchasedetail  
                        JOIN purchasemaster ON 
                            purchaseMaster.purchaseMasterId = purchasedetail.purchaseMasterId
                    WHERE purchasedetail.purchaseMasterId  = ".$_REQUEST['purchaseMasterId'];

    $selectMasterRes = mysql_query($selectMaster);
    while($purRow = mysql_fetch_array($selectMasterRes)) {
        $purchaseDetailId   = $purRow['purchaseDetailId'];
        $purchaseMasterId   = $purRow['purchaseMasterId'];
        $colorId            = $purRow['colorId'];
        $totalkg            = $purRow['totalkg'];
        $partyId            = $purRow['partyId'];

        $select = "SELECT qty
                    FROM stock
                    WHERE partyId = ".$partyId."
                    AND colorId = ".$colorId;

        $selectRes = mysql_query($select);
        if($stockRow = mysql_fetch_array($selectRes)) {
            $current = $stockRow['qty'];
        }

        $updateStock = "UPDATE stock
                        SET qty = ".$current." - ".$totalkg."
                    WHERE partyId = ".$partyId."
                      AND colorId = ".$colorId;

        $updateStockRes = mysql_query($updateStock) or die(mysql_error());
        if($updateStockRes) {
            $deleteDt = "DELETE FROM purchasedetail 
                        WHERE purchaseDetailId  = ".$purchaseDetailId;

            $deleteRes = mysql_query($deleteDt);
            if($deleteRes){
                $deleteMst = "DELETE FROM purchasemaster 
                             WHERE purchaseMasterId  = ".$_REQUEST['purchaseMasterId'];

                $deleteMstRes = mysql_query($deleteMst) or die(mysql_error());
                if(!$deleteMstRes) {
                    echo "Purchase Master Delete Fail";
                } else {
                    header("Location:purdetail.php");
                    exit();
                }
            }
        }
    }
} 
?>
  • 写回答

1条回答 默认 最新

  • douyuan1049 2017-01-21 16:54
    关注

    Here is my updated code with perfect code working

       <?php
        include("include/config.inc.php");
    
        $purchaseMasterId = isset($_REQUEST['purchaseMasterId']) ? $_REQUEST['purchaseMasterId'] : 0;
    
        if($purchaseMasterId > 0)
        {
            $k = 0;
            $selectMaster = "SELECT purchasedetail.purchaseMasterId,colorId,totalkg,purchaseDetailId,partyId
                                FROM purchasedetail  
                            JOIN purchasemaster ON purchasemaster.purchaseMasterId = purchasedetail.purchaseMasterId
                                 WHERE purchasedetail.purchaseMasterId  = ".$_REQUEST['purchaseMasterId'];
            $selectMasterRes = mysql_query($selectMaster) or die(mysql_error());
            while($purRow = mysql_fetch_array($selectMasterRes))
            {
              $purchaseDetailId   = $purRow['purchaseDetailId'];
              $purchaseMasterId   = $purRow['purchaseMasterId'];
              $colorId            = $purRow['colorId'];
              $totalkg            = $purRow['totalkg'];
              $partyId            = $purRow['partyId'];
    
    
    
                $select = "SELECT qty
                             FROM stock
                           WHERE partyId = ".$partyId."
                           AND colorId = ".$colorId;
                $selectRes = mysql_query($select);
                if($stockRow = mysql_fetch_array($selectRes))
                {
                  $current = $stockRow['qty'];
                }
    
                $updateStock = "UPDATE stock
                                  SET qty = ".$current." - ".$totalkg."
                                  WHERE partyId = ".$partyId."
                                AND colorId = ".$colorId;
                $updateStockRes = mysql_query($updateStock) or die(mysql_error());
                if($updateStockRes)
                {
                  $deleteDt = "DELETE FROM purchasedetail 
                                 WHERE purchaseDetailId  = ".$purchaseDetailId;
                  $deleteRes = mysql_query($deleteDt);
                  if($deleteRes)
                  {
                    $selectid = "SELECT purchaseDetailId
                                    FROM purchasedetail
                                 WHERE purchaseMasterId  = ".$purchaseMasterId;
                    $selectidRes = mysql_query($selectid);
                    if(mysql_affected_rows() == 0)
                    {
                      $mst = "DELETE FROM purchasemaster
                                 WHERE purchaseMasterId  = ".$purchaseMasterId;
                      $mstRes = mysql_query($mst) or die(mysql_error());;   
                      if($mstRes)
                      {
                        header("Location:purdetail.php");
                        exit();
                      }
                      else
                      {
    
                      }
                    }
                  }
                }
            }
        } 
        ?>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据