我正在研究我的考试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然后去分离器。另外,如何更新该字符串中的确切产品数量,至少我不知道任何合理的解决方案。
任何提示,想法或任何其他建议都将不胜感激。
答案 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 ) )