首页 > 解决方案 > 关系型 MySQL PHP

问题描述

我有一个名为“价格”的表,其中有两个字段,我在其中引用了另外两个名为“产品”和“供应商”的表。在“价格”表中,我确实引用了“产品”和“供应商”的“id”,我需要在 php 代码中获取两者的名称......到目前为止我所拥有的是这个,但我没有不知道如何使它工作:

$result = mysqli_query($conn, "SELECT * FROM prices") or die("Could not find");

  if (mysqli_num_rows($result) > 0) {
     while ($rr = mysqli_fetch_assoc($result)) { 
         $a = $rr['id'];
         $b = $rr['date'];
         $c = $rr['product'];
         $d = $rr['suplier'];
         $e = $rr['quantity'];
         $f = $rr['packaging'];
         $g = $rr['event'];
         $h = $rr['price'];

         $prov .="
               <tr>                                  
                 <td>".$b."</td>
                 <td><a href='productos-result.php?search=".$c."'>".$c."</a></td>
                 <td><a href='proveedores-result.php?search=".$d."'>".$d."</a></td>
                 <td>".$e."</td>
                 <td>".$g."</td>
                 <td>$".$h."</td>    
               </tr>";
        }
} 

我需要显示产品名称 $c 和供应商 $d 而不是 id,我的表格是这样的:

价格

ID, 日期, productid, suplierid, 数量, 事件, 价格

产品

ID、名称、描述

供应商

ID、名称、描述

标签: phpmysqlsqldatabaserelational

解决方案


更改您的查询以加入产品和供应商,并在列列表中将其名称设为您想要的别名。

SELECT prices.id,
       prices.date,
       product.name product,
       suplier.name suplier,
       prices.quantity,
       prices.packaging,
       prices.event,
       prices.price
       FROM prices
            INNER JOIN product
                       ON product.id = prices.productid
            INNER JOIN suplier
                       ON suplier.id = prices.suplierid;

(如果您的价格没有供应商或产品,但仍想显示它们(名称为空),请更改为INNER JOIN。 )LEFT JOIN


推荐阅读