Php 循环数据-循环两次仅加载一个数据

Php 循环数据-循环两次仅加载一个数据,php,Php,我有一个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()); whi

我有一个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);       
它缺少第一行数据,这将创建此数据以及上面的数据:

{"10":{"10":["1","7","2","2","0","32"]}};

我想知道我是不是覆盖了一些内容?我想它不会给im分配给数组,它们的X:Y是不同的。

在循环之外分配并分配$data数组

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();
    }
}

$row['x']@johnycraig的可能值是什么?你可以在json的文件中看到它们第一个数字是x第二个数字是Y:)看来存在的行和缺少的行中的
x
的值是相同的,所以第二行破坏了第一行。@d这是我的怀疑,但我无法找到解决方法。但是$row['x']直到在循环中才设置。
while($row = mysql_fetch_assoc($get)){
    if(!array_key_exists($row['x'], $data)) {
        $data[$row['x']] = Array();
    }
}