好吧,这两个功能由于某种原因拒绝正常工作,我不知道为什么。如果在活动数据库之外使用它们可以正常工作(我已经对其进行了测试并且现在正在对其进行测试)但是由于某种原因,一旦他们从数据库中获取信息,他们就会将应该更新的价格归零;例如,如果价格应该上涨到 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){}
}