我尝试从项目表和库存表中获取数据并显示信息。我遇到的问题是一切都显示正确,除了它只显示我的库存表中的什么,我希望它显示项目表中的所有项目和库存表格中的数量。我将如何正确地执行此操作是我的代码
$result= mysqli_query($link, "SELECT * FROM items LEFT OUTER JOIN inventory ON inventory.itemid=items.id WHERE inventory.userid = '".$userid."'");
while($row = mysqli_fetch_array($result) ) {
if ($row['type'] == 0 && $row['level'] > 0){
$item .= "
<td width='200px'>
<form action='gear.php' method='post'>
<div class='featured_items'><img src='". $row['image']."' width='80' height='80' style='border: 1px solid #333'></div>
<div class='featured_items_info'>". $row['itemname'] ." <br />
Att ". $row['attack'] ."
| Def ". $row['defense'] ."<br />
Cost ". $row['cost'] ."<br />
Own ". $row['quantity'] ."<br />
<input type='hidden' name='gear_id' value='". $row['id'] ."' />
<input type='submit' value='Buy' />
</form>
</td>
";
}
}
答案 0 :(得分:0)
由于您使用的user_id
字段属于inventory
,因此左连接无法按预期方式工作。将条件移至on
将解决此问题:
SELECT id, type, level, image, itemname, attack, defense,
cost, coalesce(inventory.quantity, 0) quantity
FROM items
LEFT OUTER JOIN inventory ON inventory.itemid=items.id and inventory.userid = '".$userid."'"
请务必使用coalesce
中的select
来处理用户无法使用的内容。