0

好吧,这两个功能由于某种原因拒绝正常工作,我不知道为什么。如果在活动数据库之外使用它们可以正常工作(我已经对其进行了测试并且现在正在对其进行测试)但是由于某种原因,一旦他们从数据库中获取信息,他们就会将应该更新的价格归零;例如,如果价格应该上涨到 20 美元,从 4 开始,它会变为零,然后下次更新时会转到该行中的下一个数字。

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){}   
}
4

1 回答 1

0

我解决了这个问题。再一次,这很简单,我只是想多了。我没有以正确的顺序调用我的函数,因此 Number 和 Available 是相同的并且彼此删除,从而抵消了整个价格。

于 2013-08-09T18:39:48.420 回答