从MySQL获取奇怪的JSON数组

时间:2012-02-18 17:34:46

标签: php mysql json

我有以下PHP代码:

$data=mysql_query("SELECT * FROM notes WHERE rootNoteId='$noteId'");
$mainArray;
while($result = mysql_fetch_array($data))
{
    $mainArray[]=$result;
}

$sendback = array(
     "mainArray" => $mainArray
);
sendResponse(200, json_encode($sendback));

我的表'笔记'包含以下字段:

'noteId'
'authorName'
'noteBody'

但是我的返回JSON字符串具有以下格式:

{
    "0": "3",
    "1": "Moe Bit",
    "2": "Sub sub ",
    "noteId": "3",
    "authorName": "Moe Bit",
    "noteBody": "Sub sub "
}

为什么为数组添加0,1,2索引,并且我的表字段有重复值?我只想要noteIdauthorNamenoteBody - 我不确定它会在"0","1","2"出现在哪里。

2 个答案:

答案 0 :(得分:2)

mysql_fetch_array()在其默认的“模式”中将结果提取为关联&数组。所以你得到字段名称(你想要的)和数字索引(你不想要的数字)。

要解决此问题,请将常量“MYSQL_ASSOC”作为第二个参数传递给“mysql_fetch_array”或使用mysql_fetch_assoc()函数。

答案 1 :(得分:1)

尝试mysql_fetch_assoc或mysql_fetch_object