我已经为一个网站创建了一个“喜欢”系统,但我在 json_encode 和 json_decode 方面遇到了一些麻烦。我使用数组来存储谁喜欢了某个帖子,因此我需要这两个函数来使其可存储,但由于某种原因,它有时会将对象保存到数据库中:
{"1":"admin"}
而不是数组(我想要的):
["admin"]
这是我的代码:
if ($liked_by == NULL){ $liked_by = Array(); }
if (! in_array($user, $liked_by)){
$liked_by[] = $user;
$likes = $row['likes']+1;
$liked_by = json_encode($liked_by);
mysql_query("UPDATE $stream SET liked_by = '$liked_by' WHERE id = ".$id, $db)
or die(mysql_error($db));
mysql_query("UPDATE $stream SET likes = '$likes' WHERE id = ".$id, $db)
or die(mysql_error($db));
} else{
if(($liker = array_search($user, $liked_by)) !== false) {
unset($liked_by[$liker]);
}
$likes = $row['likes']-1;
$liked_by = json_encode($liked_by);
mysql_query("UPDATE $stream SET liked_by = '$liked_by' WHERE id = ".$id, $db)
or die(mysql_error($db));
mysql_query("UPDATE $stream SET likes = '$likes' WHERE id = ".$id, $db)
or die(mysql_error($db));
}
很抱歉使用已弃用的 mysql 函数...
我只是不确定发生了什么事。
提前致谢。
您可以用作
json_decode($data,true);
where $data
是从DB保存的数据。
上面将返回一个数组,您可以对其进行进一步操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)