我创建了一个表格来注册公司并插入到数据库中。还创建了一个表格来插入每个公司的成本和售价。所有这些都已插入数据库后,我尝试将其输出到表中,但它显示的是公司 ID 而不是名称...请在下面更好地说明
公司数据库
|id | company_name |
|1 | Oliva Ltd |
|2 | Bone Mill |
comp_product 数据库
|id | company_id | cp | sp |
|3 | 2 | 20000 | 18000 |
|4 | 1 | 3000 | 100 |
我需要的帮助是通过用公司数据库中的 company_name
表示 company_id
从 comp_product DB 输出所有数据。
输出表
| company_id | cp | sp |
| Bone Mill | 20000 | 18000 |
| Oliva Ltd | 3000 | 100 |
我试过下面的代码,但我只显示了一行。
<table>
<thead>
<tr>
<th>company_id</th>
<th>cp</th>
<th>sp</th>
</tr>
<?php
$result = mysql_query("SELECT * FROM comp_product ORDER BY id DESC");
while($row = mysql_fetch_array($result))
{
$result = mysql_query("SELECT * FROM company WHERE id ='".$row['company_id']."'");
while($rowz = mysql_fetch_array($result))
{ $name = $rowz['company_name']; }
?>
<tr>
<td><?php echo $name ?></td>
<td><?php echo $row['cp'] ?></td>
<td><?php echo $row['cp'] ?></td>
</tr>
<?php
}
?>
</table>
显示我可以这样做吗?感谢理解
最佳答案
你需要一个 JOIN 查询
SELECT `company`.`company_name`, `comp_product`.`cp`, `comp_product`.`sp`
FROM `company`
LEFT JOIN `comp_cp`
ON `company`.`id` = `comp_product`.`company_id`
你不需要两个查询,你可以只循环一个的结果。如果您需要将此限制为一家公司,您可以添加一个 WHERE
子句。
此外你还需要stop using mysql_*
functions . These extensions已在 PHP 7 中删除。了解 prepared PDO 的声明和 MySQLi并考虑使用 PDO,it's really pretty easy .
关于php - 输出mysql结果的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37614902/