我基本上想做的是循环浏览播放器库存中的所有库存槽,并弄清它们是什么物品ID,并在播放器进入库存页面时回退物品名称,我可以正常工作。
当我想包括数量并且想要一次遍历数据库中的每个slot_x_quantity表时,问题就来了,但是我不断收到类似
的错误未定义索引:“ slot_1_quantity”
我将$ selectstatement放入查询中以查找数量,因为我希望能够在循环中通过slot_x_quantity 1-9。
我尝试甚至没有$ selectstatement并执行$query = "SELECT slot_'$indexaddone'_quantity FROM inventory WHERE char_id='$char_id'";
但是随后$ result抛出false,好像无法找到该表。
foreach($char_inv_slots as $key=>$value) {
if($value != 0) {
$item_id = $value;
$query = "SELECT item_name FROM items WHERE id='$item_id'";
$result = mysqli_query($db, $query);
$row = $result->fetch_assoc();
$item_name = $row['item_name'];
$indexaddone = (int)$key + 1;
$selectstatement = "slot_" . $indexaddone . "_quantity";
$query = "SELECT '$selectstatement' FROM inventory WHERE char_id='$char_id'";
$result = mysqli_query($db, $query) or die($query->error);
$row = $result->fetch_assoc();
$item_quantity = $row["'$selectstatement''"];
if($value == 8001) {
echo($item_name . " - " . $item_quantity);
} else {
echo($item_name . "<br>");
}
我想在我的库存页面上看到“-”,其中只有可堆叠的物品,但我似乎无法通过此循环显示要显示的数量。
答案 0 :(得分:0)
使用此代码,它将仅返回设置的行值,如果尚未设置行,则将转义
$row = $result->fetch_assoc();
$item_quantity = isset($row[$selectstatement]) ? $row[$selectstatement] : "0";
如果有其他显示项目数量为0的项目名称,它将显示您的项目名称和数量。
也可以将$row["'$selectstatement''"];
替换为$row[$selectstatement];
确保获取记录的行中存在'slot_1_quantity'等,否则每次的项目数量将保持为0。