【发布时间】:2013-10-06 02:50:09
【问题描述】:
我有两个表,“inventory”和“inventory_type”。 “inventory”表存储它的名称和类型,“inventory_type”表存储RAM、CPU等类型名称和排序顺序。我以前从未使用过 JOINS,也不确定要使用哪种类型,但它们似乎都不适用于以下代码。
作为一个附带问题,使用下面的代码,“inventory”是左表还是将“inventory_type”加入到左侧?
function getInventoryOptions($db, $default_value, $datacenter)
{
$query = "SELECT inventory.id, inventory.name, inventory_type.short_name
FROM inventory LEFT JOIN inventory_type
ON inventory.type = inventory_type.id WHERE inventory.datacenter = " . $datacenter . " ORDER BY inventory_type.sort_order ASC";
$result = mysql_query($query, $db);
echo '<option value="">None</option>';
if ($result)
{
while($row = mysql_fetch_array($result))
{
$id = $row["inventory.id"];
$name = $row["inventory.name"];
$type = $row["inventory_type.short_name"];
if ($default_value == $id)
{
echo '<option selected value="' . $id . '">' . $type . ": " . $name . '</option>';
}
else
{
echo '<option value="' . $id . '">' . $type . ": " . $name . '</option>';
}
}
}
}
【问题讨论】:
-
“它们似乎都不起作用”是什么意思?查询看起来不错,您需要发布数据样本。
-
在 $result = mysqli_query($query,$db) 之后使用 print_r($result) 来调试数据集
-
是 $id = $row["inventory.id"];获得价值的正确方法?我做了一个 var_dump() 并且它似乎确实在返回数据,只是似乎我没有正确获取它