代码设置项目价格为0

时间:2013-08-09 02:42:08

标签: php

好吧,这两个功能由于某种原因拒绝正常工作,我无法弄清楚原因。如果在活动数据库之外使用它们,它们可以正常工作(我已经对它进行了测试并正在测试它) 但由于某种原因,第二个他们从数据库中获取信息,他们将应该更新的价格归零;例如,价格应该从4开始说,20美元,它会变为零,然后下次更新将转到该行中的下一个数字。

private function updatePrice($iid, $price, $purchased)
{
    if($price >= 0)
    {
        $price = abs($price);
    }
    else
    {
        $price = $this->getItemStats($iid);
        $price = abs($price['base']);
    }
        $sql = "UPDATE store SET item_price = :price, available = available-:purchased  WHERE iid = :iid";
        $que = $this->db->prepare($sql);
        $que->bindParam('price', $price);
        $que->bindParam('iid', $iid);
        $que->bindParam('purchased', $purchased);
        try{$que->execute(); if($que) { return true; } else { echo "FUCK"; exit; } }catch(PDOException $e){echo $e->getMessage(); exit;}
}
function getSupplyDemand($purchased, $iid)
{
    $sql = "SELECT available, number, item_base_price, iid FROM store WHERE iid = :iid";
    $que = $this->db->prepare($sql);
    $que->bindParam('iid', $iid);
    try{ $que->execute();
        if($que)
        {
            while($row = $que->fetch())
            {
                $Quantity =$row[0];
                $Supply = $row[1];
                $price = $row[2];
                $iid = $row[3];
                $price = abs(($price * $purchased)*($Quantity - $Supply)/.25);
                    if($this->updatePrice($iid, $price, $purchased))
                    {
                        return true;
                    }
                    else
                    {
                        echo "Somethign went wrong";
                        exit;
                    }
            }
        }
    }catch(PDOException $e){}   
}

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。再一次,这是一件简单的事情,我只是推翻了。我没有按照正确的顺序调用我的功能,因此Number和Available是相同的并且相互删除因此可以计算出整个价格。