我有一些订单信息存储在名为“order_details”的数据库表行中。根据我目前的研究,这些单元格包含一个序列化数组:
s:346:"{"total":50,"tax_perc":8.25,"shipping_total":20,"discount_total":0,"discount":"","pick_up":0,"items":[{"id":"0","amount":1,"available":1000,"price":50,"first_pet":50,"pet_count":1,"size":"4x6","type":"portrait","clothe":"93","total":50}],"size_found":false,"taxes_total":4.13,"grand_total":74.13}";
我尝试使用unserialize(),但没有任何内容被打印出来。只有将其序列化后才能打印单元格的内容。
你有什么想法,为什么使用unserialize()时没有任何东西被打印出来吗?
此外,我正在尝试使用此数据创建后端界面,因此由于unserialize()将组织这些数据,我需要能够仅显示特定元素(如ID)。是否可能?还是它必须打印所有数据?
更新: 以下是我的工作方式: (1)当有人下订单时,数据被序列化并抛到数据库中,并向我和客户发送电子邮件 (2)对于我希望询问和显示所述序列化数据的这个管理页面,我查询数据库以返回按id排序的相关表格 (3)然后我有了这个,它旨在将该数据投入UI上的表行。
$mydata = $all_orders[$i]['order_details'];
$mydata = unserialize($mydata);
echo '<td>' . $mydata . '</td>';
目前我只是想更好地了解那些数据,希望能够对价格、ID等进行排序。
提前感谢您的回复!
unserialize()
在失败时返回布尔值FALSE,这会被打印/回显为空字符串(例如不可见)。你需要使用var_dump()
来代替。 - Marc B