如何编写mysql查询来更改变量

时间:2012-07-18 22:55:22

标签: mysql variables loops

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

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)购物车提供baseData(产品编号)

在这种情况下,正确检索的数据应该显示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 

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

1 个答案:

答案 0 :(得分:0)

问题在于:

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

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

如果每次只返回一个值,则可以将其作为:

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

如果返回多个值,则可以循环显示值并将其存储在数组中。