Php Mysql联接未返回联接表的值

Php Mysql联接未返回联接表的值,php,mysql,left-join,Php,Mysql,Left Join,我一辈子都搞不明白为什么不能从表B中获取图像。它从表A的所有内容中都不返回任何内容 我想知道是不是桌子的结构。该表的设置方式是,order\u detail表中可能有多个order\u number实例。这两个Product_id字段都是INT(10),并且之前的order_detail表没有主键(自动递增)。因为订单号取自另一个表,并且每个订单可能有10个相同的订单号用于购买的每个产品,所以主键是一个单独的字段 我应该创建订单号作为索引字段吗?任何帮助都会很棒,我就要放弃了 Here is o

我一辈子都搞不明白为什么不能从表B中获取图像。它从表A的所有内容中都不返回任何内容

我想知道是不是桌子的结构。该表的设置方式是,order\u detail表中可能有多个order\u number实例。这两个Product_id字段都是INT(10),并且之前的order_detail表没有主键(自动递增)。因为订单号取自另一个表,并且每个订单可能有10个相同的订单号用于购买的每个产品,所以主键是一个单独的字段

我应该创建订单号作为索引字段吗?任何帮助都会很棒,我就要放弃了

Here is order details:
id      order_number  date_time         product_id  product_name    quantity
2       10011     2012-12-20 14:11:24   13          T-Shirt         1
3       10011     2012-12-20 20:02:31   11          T-Shirt         1

Here is products:
product_id  who product_name    color   size    price   image
13          men T-shirt     red medium  15.00   /images/apparel/t-shirt.jpg
11          men T-Shirt         red small   15.00   /images/apparel/t-shirt.jpg

This is the end result of my query:

Order Number    Image   Product Name    Quantity    Cost Each   Total
10011               T-Shirt         2           $15.00          $30
10011               T-Shirt         2           $15.00      $30




$order_number = $_GET['var1'];
$query = "SELECT a.product_name, a.quantity, b.image, a.product_cost FROM order_detail a LEFT JOIN products b ON a.product_id = b.product_id WHERE a.order_number = '$order_number'";
$data = mysqli_query($dbc, $query); 

while($row = mysqli_fetch_assoc($data)){
$prod_name = $row['product_name'];
$quantity = $row['quantity'];
$cost = $row['product_cost'];
$img = $row['image'];

它可以处理您的数据并进行一些更改(订单明细表中没有产品成本字段):

能否以表格形式添加具有所需结果的样本记录<代码>:D将a.product\u id=b.product\u id更改为ON(a.product\u id=b.product\u id)Akam我尝试了括号,但它仍然不返回任何内容。它从表a的所有内容都不返回任何内容
表a
包含
产品id
s 13和11<代码>表b包含
产品id
s1和s2。到底应该匹配什么?您是否尝试使用mysql或您正在使用的任何IDE(例如phpMyAdmin)以实际订单号值(例如10011)运行查询?它产生了什么结果?所以我仍然无法让它工作,我最终做的是删除表并重新创建它。当我第一次创建它时,它没有自动增量或主id,这次我使用这两个属性创建了它,当我重新运行查询时,它工作得很好。不知道为什么,但谢谢大家的帮助。你们检查过示例代码了吗?还有数据库结构,加上查询本身,输出显示结果:2行。是的,我做了。你的代码是死的,当我复制数据时,我刚刚遗漏了一个字段,但你解释了这一点。再次感谢