我有一个while循环,在json对数据进行编码之前创建一个数组,但是尽管我已经对其进行了测试并且返回了2行并且它循环了两次。我的 JSON 编码只显示其中一行数据 =/
这是我的 php:
$get = mysql_query("SELECT * FROM
player t1 INNER JOIN game t2
ON t1.sid=t2.id
WHERE uid='1'") or die(mysql_error());
while($row = mysql_fetch_assoc($get)){
echo 'looped<br/>'; //testing row count
$data[$row['x']] = Array();
$data[$row['x']][$row['y']][0] = $row['bid'];
$data[$row['x']][$row['y']][1] = $row['sid'];
$data[$row['x']][$row['y']][2] = $row['width'];
$data[$row['x']][$row['y']][3] = $row['height'];
$data[$row['x']][$row['y']][4] = $row['offsetx'];
$data[$row['x']][$row['y']][5] = $row['offsety'];
}
$data1 = json_encode($data);
我总共有 2 个循环,但我的 json 只有一个数据集,这让我感到困惑:
{"10":{"11":["1","22","1","1","0","0"]}}
它缺少将创建此数据的第一行数据以及上面的数据:
{"10":{"10":["1","7","2","2","0","32"]}};
我想知道我是否覆盖了一些如何?我认为它不会给数组分配 im,并且它们的 X:Y 是不同的。
while($row = mysql_fetch_assoc($get)){
$data[$row['x']] = Array();
}
仅当它尚不存在时,才应对其进行设置:
while($row = mysql_fetch_assoc($get)){
if(!array_key_exists($row['x'], $data)) {
$data[$row['x']] = Array();
}
}
在
循环之外分配和分配$data数组。