如何将SQL查询结果JSON编码为数组作为JSON字典PHP的值?

时间:2018-10-06 01:20:32

标签: php sql json

如何将来自sql查询的结果列表存储到php中的映射中。所以问题是我有一个从查询中返回的视频游戏列表,我想返回JSON来显示

from collections import defaultdict

#initialise dictionary
dd = defaultdict(int)

while counter < 50:
    e = ...                  # gets just the subreddit name
    dd[e] += 1               # increment count by 1
    counter = counter + 2    # increment while loop counter

# create results dataframe
df = pd.DataFrame.from_dict(dd, orient='index').reset_index()

# rename columns
df.columns = ['Subreddit', 'Appearances']

我正在尝试与关键视频游戏建立关联数组,其值将是视频游戏列表,但我不认为自己会从查询中正确提取行

{ "videoGames":[list of video games,
  "developers":[list of developers} 

我相信即时通讯会将阵列设置为正确编码,但是当我尝试在服务器上运行此程序时,它一无所获。我不是从查询中正确提取信息吗?还是使用mysql_fetch_assoc

2 个答案:

答案 0 :(得分:0)

让我们尝试解决此问题。

  • 首先,分号很重要。这可能只是格式问题,但值得指出。
  • 第二,videoGames分配正在覆盖数组(括号也很重要)。
  • json_encode除了创建json本身并不会做任何事情,您需要输出,分配或进行其他操作。
  • 这将直接从查询中获取结果,而无需进行过滤,因此您可能最终在结果中出现不需要的列。

-

$videoGames = mysqli_fetch_all($result, MYSQLI_ASSOC)) {
$response = array("videoGames" => $videoGames);
echo json_encode($response);

答案 1 :(得分:0)

如果你们想知道为什么我要问这个,那是因为他是如何编写代码的,他试图让我在这种结构的客户端上插入json。我为此知道的完全不正确

{ "videoGames":{
                 "0":videogame data 1,
                 "1":videogame data 2,
                }
}

看看我在说什么,他没有向我返回视频游戏数据的数组,他正在使用mysqli_fetch_assoc($result)函数在while循环中遍历sql结果,就像我说过为什么我以为是出问题了。并将数组的键分配为数据库中的主键。那绝对不是去这里的方法。但是我告诉他尝试@msg答案,看来可以使用