我是PHP的新手,我已经在这个问题上被困了一段时间了(一直在搜索,但实际上没有帮助)。
我正在尝试搜索数据表中的所有数据(“Select * FROM X”),这似乎工作正常。
然而,当我尝试返回/回显数据时,将JSON格式编码为数组(我想在数组中将1行作为1个索引),这确实很奇怪。
这是我目前使用的代码;
$SQL = "SELECT * FROM `units`";
$Result = mysqli_query($link, $SQL) or die ("DB ERROR");
$Total = mysqli_num_rows($Result);
if($Total > 0)
{
$rows = mysqli_fetch_array($Result, MYSQLI_NUM);
$row_count = mysqli_num_rows($Result);
while($row = mysqli_fetch_array($Result))
{
echo json_encode(array($row));
}
}
然后通过;
在Unity(C#)中使用JSONObject obj = new JSONObject(loadUnitsWWW.text);
Debug.Log(obj);
结果是;
[{“0”:“2”,“unitID”:“2”,“1”:“Tanks”,“unitName”:“Tanks”,“2”:“Ground”,“unitType”:“地面“},[],[],[],[],[],[],[],[],[],[],[]]
似乎是出于某种原因试图返回一切,包括列名。但我不知道为什么它会多次返回相同的结果(并且不知道0来自哪里)。
正如我所说的,我对PHP很缺乏经验,因此很可能是某些东西(实际上我确定)该代码有问题,我尝试过for循环,例如;
for($i = 0; $i < $row_count; $i++) {...}
但无济于事(它返回的内容如下:
[ “1” 时,[],[] “”,NULL,NULL,NULL,{},NULL,NULL,null.null [] “” ..........] < / p>
如果数据表布局有帮助,则继续使用数据表布局;
unitID | unitName | unitType
1 | infantry | Ground <br>
2 | Tanks | Ground <br>
3 | Support | Ground <br>
4 | Artillery | Ground <br>
. <br>
.
表格中有13个项目
编辑:
这就是我所期待的:
[[“1”,“步兵”,“地面”],[“2”,“坦克”,“地面”] ....]
答案 0 :(得分:-1)
0
指的是结果集中的列顺序。您可以参考mysqli-result.fetch_array并检查参数和返回类型。
改变你的路线:
while($row = mysqli_fetch_array($Result))
使用:
while($row = $rows) {
// your code
$rows = mysqli_fetch_array($Result, MYSQLI_NUM);
}
另一种解决方案,我认为对你更好
$rows = mysqli_fetch_all($Result, MYSQLI_NUM);
echo json_encode($rows);