0

以下是我需要查询的三个表。

r601_shoppingcart_carts
  cart_id          user_id          customize 
   10               65                 1
   11               78                 1
   12               78                 0

r601_shoppingcart_items:
cart_item_id   cart_id     sobipro_entry     
    5              10            87
   39              11           194
   40              11           140 
   38              12           126

r601_sobipro_field_data
fid                sid          baseData
 45                194          cg_0059
 45                140          cg_0094_4
 45                141          cg_0011_2

如果该项目(产品)是可定制的,则查询的所需结果将为特定用户(user_id)购物车提供基本数据(产品编号)

在这种情况下,正确的检索数据应显示 user_id 78 在他/她的购物车中有以下两个可定制的项目: cg_0059 cg_0094_4

早些时候,我在这里展示了一个 SELECT 语句,该语句位于左侧字段中。我发现以下 SELECT 语句实现了我的目标。我不知道这是否是一个有效的陈述。任何意见将不胜感激。

 SELECT
    r601_sobipro_field_data.baseData,
    r601_sobipro_field_data.sid,
    r601_shoppingcart_items.cart_id,
    r601_shoppingcart_carts.cart_id
 FROM
    r601_sobipro_field_data,
    r601_shoppingcart_items,
    r601_shoppingcart_carts
 WHERE
    r601_sobipro_field_data.fid = 45
 AND
    r601_sobipro_field_data.sid = r601_shoppingcart_items.sobipro_entry 
 AND
    r601_shoppingcart_items.cart_id = r601_shoppingcart_carts.cart_id
 AND
    r601_shoppingcart_carts.user_id = 78
 AND
    r601_shoppingcart_carts.customize = 1 

我确实收到了一条有用的信息。谢谢!

4

1 回答 1

0

问题在于这条线:

$partNo = $sobiBaseData_rows[$i]->baseData;

由于查询返回的值返回一个单独的数组,因此您无法访问 $i 元素。

如果每次只返回一个值,您可以按如下方式访问它:

$partNo = $sobiBaseData_rows[0]->baseData;

如果返回多个值,您可以遍历这些值并将其存储在数组中。

于 2012-07-19T11:18:42.853 回答