同一表格单元格中的产品ID和订购数量

时间:2016-06-06 04:55:31

标签: php mysql sql database

我正在研究我的考试PHP项目,该项目基于创建电子商店。 一切顺利,直到我看到数据库的表格,我的教授坚持认为他们必须按照他的要求。

问题是什么 有3个表,用户,产品和订单。

用户表应包含:

| username| password | name | last name | email | adress | phone | **CART** |

产品表如下所示:

| product_id | product_name | description | price | image |

订单表:

| order_id | user_id | ordered products |

功能应该是这样的:

当用户点击"添加到购物车"按钮产品ID和数量应存储在用户表 - >购物车单元格中,除以分隔符。

例如:

| username| password | name | last name | email | adress    | phone | **CART** | should have data
|  John   | 125544   | john |     doe   |john@g | 1st Stret | 12324 | **14  2;**   |

此信息应显示在cart.php页面上。 当用户点击“购买”按钮时,数据将转到“订单”表并再次转到“订单”表中 |订购产品| cell应该是product_id和quantity。

然后管理员应该能够看到他页面上的所有订单。

我们不允许使用购物车会议。

我不知道如何从 CART 单元格中提取数据,这些数据看起来像字符串(14 2; 15 4; 12 1;),第一个数字是产品第二个数字是数量ordred然后去分离器。另外,如何更新该字符串中的确切产品数量,至少我不知道任何合理的解决方案。

任何提示,想法或任何其他建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

数据库设计很糟糕,但这些情况也发生在商业系统中。我将检索整个单元格值,然后在PHP中将其爆炸,操纵生成的数组,然后内爆并在需要时将其写回。

答案 1 :(得分:0)

如果可能,请更改 CART 值保存在表格中的方式。 试试这个

$serialized_data = serialize(
array('0'=>array('order_id'=>'101',
                 'product_id'=> '201',
                 'quantity'=>'6'),
      '1'=>array('order_id'=>'102',
                 'product_id'=> '202',
                 'quantity'=>'5')
));
echo  $serialized_data;

它会将值存储为

a:2:{i:0;a:3:{s:8:"order_id";s:3:"101";s:10:"product_id";s:3:"201";s:8:"quantity";s:1:"6";}i:1;a:3:{s:8:"order_id";s:3:"102";s:10:"product_id";s:3:"202";s:8:"quantity";s:1:"5";}}

当你想要更新它时,从表中获取值反序列化它,你会得到一个像这样的数组

$unserialized_data = unserialize('a:2:{i:0;a:3:{s:8:"order_id";s:3:"101";s:10:"product_id";s:3:"201";s:8:"quantity";s:1:"6";}i:1;a:3:{s:8:"order_id";s:3:"102";s:10:"product_id";s:3:"202";s:8:"quantity";s:1:"5";}}');
print_r($unserialized_data);

结果将是

Array ( [0] => Array ( [order_id] => 101 [product_id] => 201 [quantity] => 6 ) [1] => Array ( [order_id] => 102 [product_id] => 202 [quantity] => 5 ) )