PHP中的SQL试图通过php列出不同行的数量列

时间:2021-08-01 14:41:50

标签: php sql

我的游戏库存中有一张物品表:

项目 -- 数量

  1. 气球 -- 5
  2. 火球 -- 10

我试图找到如何在一个 SQL 查询中将这些值放入 php 变量中,而不是为我正在查找的每个项目进行单独的 sql 搜索。

我已经尝试过 UNION:

$orbs= mysql_query("SELECT itemqty AS airorbqty FROM inventories WHERE username= '$username' AND itemname= 'Air Orb' UNION ALL SELECT itemqty AS fireorbqty FROM inventories WHERE username = '$username' AND itemname='Fire Orb' ");

while($row= mysql_fetch_array($orbs))
{
    $airqty= $row['airorbqty '];
    $fireqty= $row['fireorbqty '];
}

echo "air orbs: ", $airqty, "Fire Orbs: ", $fireqty;

但不幸的是它给了我错误。我尝试稍后使用它,因为技能只取决于它需要的特定物品的数量。

例如,火焰攻击将使用 1 个空气球和 2 个火球,并且只有当这 2 个物品的数量等于或高于它们所需的数量时才能使用。

提前致谢。

1 个答案:

答案 0 :(得分:0)

简单,对许多项目使用 SQL IN:

$orbs = ['Air Orb'=>0,'Fire Orb'=>0];
$orbs_result = mysql_query("SELECT itemname, itemqty FROM inventories WHERE username = '$username' AND itemname IN('Air Orb', 'Fire Orb')");
while($row = mysql_fetch_array($orbs_result)) {
  $orbs[$row['itemname']] = $row['itemqty'];
}

if ($orbs['Air Orb'] >= 5 and $orbs['Fire Orb'] >= 2) {
  echo "Fire Attack Ready";
}