我正在尝试为我的游戏创建自己的排行榜系统,所以我正在使用PHP并向游戏请求Ajax信息,但由于我对PHP一点都不擅长,我对创建一个JSON对象,其中包含我需要在javascript部分处理的所有信息。
我想要做的是,PHP部分是生成这个JSON对象:
{players: ["name1", "name2", ..., "name10"], scores:[score1, score2, ..., score10]}
所以我可以使用像
这样的javascript工作dataReceived.players[0]
我正在从数据库中正确地存储和获取数据,但是我无法在Ajax请求中生成要接收的JSON对象。基本上,这是我的PHP代码:
$query = "SELECT * FROM leadersboards ORDER by score ASC LIMIT 10";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$result_length = mysql_num_rows($result);
$arrayScores = array();
$arrayPlayers = array();
for($i = 0; $i < $result_length; $i++){
$row = mysql_fetch_array($result);
array_push($arrayPlayers, $row['player']);
array_push($arrayScores, $row['score']);
}
$answer = json_encode(array('item' => $arrayPlayers, 'item' => $arrayScores), JSON_FORCE_OBJECT);
很抱歉,如果我在PHP中做了些蠢事,正如我所说,我根本不懂PHP,只是非常基本的东西。
答案 0 :(得分:0)
问题是:
array('item' => $arrayPlayers, 'item' => $arrayScores)
设置后,您正在覆盖项目键。
答案 1 :(得分:0)
我想你想做这样的事情
$answer = json_encode(array('players' => $arrayPlayers, 'scores' => $arrayScores)
答案 2 :(得分:0)
Ok, so I fixed it this way, I don´t know if is the best option but it works
$myObject = new stdClass();
$myObject = array(
"players" => $arrayPlayers,
"scores" => $arrayScores,
);
echo json_encode($myObject);
答案 3 :(得分:0)
请停止使用mysql_ *而不是使用mysqli_ *或PDO。
根据您在对象内预期的数组输出,使用以下代码:
$application->__construct();