从mysql查询创建令牌列表到json

时间:2013-11-21 12:47:12

标签: php mysql arrays json twitter-typeahead

我最近开始使用twitter typeahead插件进行新项目并且遇到了一些障碍,我在1个表中查询2列数据以搜索数据,我只是在搜索1列时工作正常当移动到两个时,我相信我需要开始使用令牌进行搜索。

然而,我无法找到一种方法将标记添加到我的数组中,然后将它们编码为json并返回搜索

到目前为止,这是我的代码:

$dbh = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', '');

$stmt = $dbh->prepare('SELECT NAME, CLID FROM customer');
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $row_array['NAME'] = $row['NAME'];
    $row_array['CLID'] = $row['CLID'];
    $row_array['tokens'] = "";
    $results[] = $row_array;
}

$json = json_encode($results);
echo $json;
return $json;

令牌行正在进入数组但是我不知道如何格式化它,我知道它需要采用

的格式
tokens:[
"token1", "token2", "token3"
]

令牌将是NAME和CLID的值,我如何创建令牌,理想情况如下:

{
name: "name",
CLID: "CLID",
tokens: [
"name1", "clid1", "name2", "clid2", "name3", "clid3"...
]
}

1 个答案:

答案 0 :(得分:0)

管理通过阅读更多来弄清楚,创建一个嵌套的json元素,你需要通过arry中的数组添加

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $row_array['NAME'] = $row['NAME'];
    $row_array['CLID'] = $row['CLID'];
    $row_array['tokens'] = array($row["NAME"],$row["CLID"]); //create new array and add the tokens you want
    $results[] = $row_array;
}