Php 在另一个查询中使用MySQL结果

Php 在另一个查询中使用MySQL结果,php,mysql,Php,Mysql,我有一个代码,它列出了一个给定公司的tbl_库存中的所有内容,该公司运作良好: $result_inventory = mysqli_query($con,"SELECT * FROM tbl_inventory WHERE company_id='$company_id' ORDER BY ip_address") while($row = mysqli_fetch_array($result_inventory)) echo "<td>{$row['type']} </t

我有一个代码,它列出了一个给定公司的tbl_库存中的所有内容,该公司运作良好:

$result_inventory = mysqli_query($con,"SELECT * FROM tbl_inventory WHERE company_id='$company_id' ORDER BY ip_address")

while($row = mysqli_fetch_array($result_inventory))
echo "<td>{$row['type']} </td>";
echo "<td>{$row['ip_address']} </td>";
echo "<td>{$row['site']} </td>";
但是,我不确定如何根据前面的结果定义$site


有人能给我指一下正确的方向吗?

你可以用以下方法:

$result_inventory = mysqli_query($con,"SELECT * FROM tbl_inventory WHERE company_id='$company_id' ORDER BY ip_address")

while($row = mysqli_fetch_array($result_inventory)){
  echo "<td>{$row['type']} </td>";
  echo "<td>{$row['ip_address']} </td>";
  $result2 = mysqli_query($con,"SELECT name FROM tbl_sites WHERE site_id='$row[site]'")
  if ($row2 = mysqli_fetch_array($result2))
    echo "<td>{$row2['name']} </td>";
}
$result\u inventory=mysqli\u query($con,“按ip地址从tbl\u inventory中选择*,其中公司id=“$company\u id”订单”)
while($row=mysqli\u fetch\u数组($result\u inventory)){
回显“{$row['type']}”;
echo“{$row['ip_地址']}”;
$result2=mysqli_查询($con,“从tbl_站点中选择名称,其中站点id=“$row[site]”)
if($row2=mysqli\u fetch\u数组($result2))
回显“{$row2['name']}”;
}

但是我认为这是一个非常低效的

@Rayblade的答案似乎是正确的,但是,您也可以在两个表之间执行一个
JOIN
-语句:

SELECT tbl_sites.name FROM tbl_inventory 
LEFT JOIN tbl_sites ON tbl_inventory.site = tbl_sites.site_id 
WHERE tbl_inventory.company_id='$company_id' 
ORDER BY tbl_inventory.ip_address

这将成功获取与站点匹配的每个公司的
tbl_sites.name
列。在这里,您当然可以获得任意数量的列,只需确保使用表名作为前缀,因为现在查询中有两个表。

它是如何关联的-一对一还是多对一?这是一个完美的示例,您希望使用联接操作()这就做到了,谢谢-我是PHP/SQL新手,总是想知道什么时候需要开始使用连接
SELECT tbl_sites.name FROM tbl_inventory 
LEFT JOIN tbl_sites ON tbl_inventory.site = tbl_sites.site_id 
WHERE tbl_inventory.company_id='$company_id' 
ORDER BY tbl_inventory.ip_address