【发布时间】:2017-07-15 20:15:54
【问题描述】:
任何人都可以在这里发现任何错误吗?很抱歉再次询问,但我是新来的,在发帖时不太确定该怎么做。
$stmt = $db->prepare('INSERT INTO `giveawayusers` (`giveawayid`, `steamid64`, `coins`, `from`, `to`) VALUES (:id, :id64, :coins, :from, :to)');
$stmt->execute(array(
":id" => $id,
":id64" => $steamUserId,
":coins" => $coins,
":from" => $currentCoins,
":to" => $totalCoins,
));
if($currentCoins+$coins>=$totalCoins)
{
$winningticket = mt_rand(1,$totalCoins);
$stmt = $db->prepare('SELECT `steamid64` FROM `giveawayusers` WHERE `from` <= :winningticket AND `to` >= :winningticket AND `giveawayid`=:id');
$stmt->bindValue(':id', $id);
$stmt->bindValue(':winningticket', $winningticket);
$stmt->execute();
$winner = $stmt->fetch();
我相信错误可能在这里
$stmt = $db->prepare('SELECT `steamid64` FROM `giveawayusers` WHERE `from` <= :winningticket AND `to` >= :winningticket AND `giveawayid`=:id');
我的数据库结构是这样的:
https://gyazo.com/4ec4874d879b2cf4bd1d2450e57cfa71 https://gyazo.com/95cddb0a1c7b8fd1c360a6d5a1b2e129
干杯, 詹姆斯
【问题讨论】:
-
你得到了什么错误之王?我不确定这里有什么问题。
-
获胜者未被选中。看看 skin-room.com 你就会明白
-
所以您的查询结果为空?
-
是的。试图弄清楚如何解决它
-
硬币 (2) 和当前硬币 (2 或 4) 中的数字太高。
mt_rand(1,$totalCoins)的结果为 0、1 或 2。您在表中的硬币和总硬币的大量数据会产生高于 2 的结果,从您的查询中返回一个空结果集。
标签: javascript php jquery mysql arrays