如何格式化sql值" [a,b,c]"?

时间:2018-06-13 19:27:44

标签: php html sql json formatting

在游戏中,有三个不同的团队。例如,团队a,b和c。 在游戏的数据库中,播放时间的报告如下:" [a,b,c]"每个字母是用户在该特定团队中玩了多少分钟。 我使用PHP从数据库中获取数据以显示在网站上,但它只显示为" [14,0,1]"因为我在团队a上有14分钟,在团队b上有0分钟,在团队中有1分钟。

如何通过PHP或JSON格式化这个来添加a,b和c,或者在这种情况下添加14 + 0 + 1?

PHP中的代码:

$sql = "SELECT * FROM players WHERE playerid ='". $steamprofile['steamid']  
."'";
$result = $db->query($sql);
if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        $playtime = $row["playtime"];
    }

HTML中的代码:

<span id="label">Playtime</span>: <b><span id="playerPlaytime"><?php echo 
$playtime; ?></span></b><br>

输出: http://prntscr.com/jum85v

2 个答案:

答案 0 :(得分:1)

通过分割逗号创建一个数组,然后计算总和(首先修剪额外的东西):

$playtime = array_sum(explode(',', trim($row['playtime'], '"[]')));

要使用JSON,您仍需要修剪引号:

$playtime = array_sum(json_decode(trim($row['playtime'], '"')));

答案 1 :(得分:0)

如果DB中的变量是一个字符串(它似乎是一个JSON对象),那么在PHP中你可以这样做:

$playtime = array_sum(json_decode($row['playtime']));