Php 如何使用以下命令将数组保存在数据库的同一字段中|&引用;作为分离者?

Php 如何使用以下命令将数组保存在数据库的同一字段中|&引用;作为分离者?,php,javascript,jquery,mysql,ajax,Php,Javascript,Jquery,Mysql,Ajax,这是一个拖放代码,它将单独保存在数据库中。我想让我的用户能够根据自己的选择保存仪表板布局。请看下图,如果您有任何建议,请告诉我。提前谢谢 **index.php** $(文档).ready(函数(){ $(函数(){ $(“#contentLeft#db_box”).sortable({不透明度:0.6,光标:'move',更新:function(){ var order=$(this).sortable(“序列化”)+'&action=updateRecordsListings'; $.po

这是一个拖放代码,它将单独保存在数据库中。我想让我的用户能够根据自己的选择保存仪表板布局。请看下图,如果您有任何建议,请告诉我。提前谢谢

**index.php**
$(文档).ready(函数(){
$(函数(){
$(“#contentLeft#db_box”).sortable({不透明度:0.6,光标:'move',更新:function(){
var order=$(this).sortable(“序列化”)+'&action=updateRecordsListings';
$.post(“updateDB.php”),顺序,函数(响应){
$(“#contentRight”).html(响应);
});                                                              
}                                 
});
});
}); 
**更新的b.php**

以这种方式对数据库进行非规范化通常不是一个好主意,但我们当然不知道您的特定用例


如果要执行此操作,可以在数组上使用
join
函数来获取一个字符串,其中数组的元素使用给定的分隔符连接在一起。您可以在JavaScript端(使用)或PHP端(使用的别名)执行此操作。

我的观点:不要对非规范化的数据库建模。从未。如果你认为你需要这样做,那你的思维方式就不好。三思而后行。难道您不知道如何处理JavaScript中返回的多行(记录)吗?甚至在PHP中?那么,请询问如何处理SQL查询返回的多行。我们建议您使用
foreach()
while()
循环

如果是JavaScript问题,则返回/发送JSON数组到JavaScript脚本,然后再次使用循环遍历记录

存储通过
|
连接的数据
是一种非常古老、非常糟糕的强迫行为——如果你在某处看到它,立即忘记它,学习更好的新东西

编辑: 如果仍然需要存储此类balast数据,请以更好的方式进行—在数组/对象中序列化它们:

$array = unserialize($serialized);
将此
$serialized
字符串存储到数据库中,而不是
One | Two | Three
值。。。从数据库调用中检索后:

如果要更新行,请执行以下操作:

  • 检索该行
  • 非序列化
  • 添加/修改数组
  • 连载
  • 拯救

  • 为什么要应用反模式?我想这不是最好的数据库结构。SQL是关系型的,你最好使用外键。看看json_encode,json_decode,这应该符合你的要求,更好地将数组结构保存到数据库中的一行,在保存到db之前进行编码,然后进行解码,当使用它们时,我不知道实际问题与PHP、JavaScript有什么关系,jQuery或Ajax。请继续阅读,了解您不应该破坏它的原因。通常情况下,
    特定用例
    是我不知道如何处理从数据库返回的多行,因此我希望它们在一个混搭记录中返回,我将使用
    explode()
    或类似方法解析它们。如果任何用例需要非规范化的数据库,那么这是一个糟糕的用例,应该重新考虑……基本上我不想为每个不同的用户插入7条记录。这就是为什么对于一个特定的用户只有一行。@为Web着色,这是个坏主意。。。但,更好的解决方案是创建一个值数组,序列化它们,然后存储一个序列化字符串。嗯?伙计,我明白你的意思,但问题是这是一个拖放代码,其中标题和框的ID是相同的。。不同的是位置id和用户名。所以我不想在数据库中为同一个用户创建7行。这就像是无缘无故地创建,这就是我为什么不将其保存在一行中的原因,在显示时,只需分解aaray并相应地显示拖放框的位置。正如我在上面所评论的那样,存储序列化字符串(例如,从数组中)就不会太过分了。。。想想看……如果你不介意的话,你能给我举个例子吗?检查我编辑的答案。thnx!真的很感激
    $array = array('One', 'Two', 'Three');
    $serialized = serialize($array);
    // output something like: a:3:{s:3:One;s:3:Two;s:5:Three}
    
    $array = unserialize($serialized);