如何使用json回显数组?

时间:2011-08-30 19:20:36

标签: php mysql json pdo

我的代码似乎没有返回$_GET['fruitVariety']的JSON,知道为什么? 我的数据库设置正确。

就像json_encode只能回显1个数组。

$rows = array();

if(isset($_GET['fruitName'])) {
    $stmt = $pdo->prepare("SELECT DISTINCT variety FROM fruit WHERE name = ? ORDER BY variety");
    $stmt->execute(array($_GET['fruitName']));
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

if(isset($_GET['fruitVariety'] )) {
    $stmt = $pdo->prepare("SELECT DISTINCT fruittype FROM fruit WHERE name = ? ORDER BY fruittype");
    $stmt->execute(array($_GET['fruitVariety']));
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

echo json_encode($rows);

1 个答案:

答案 0 :(得分:5)

在第一次查询后,您将覆盖放在$rows中的值。你应该这样做:

 $rows[] = $stmt->fetchAll(PDO::FETCH_ASSOC);

括号([])非常重要!您可以在PHP documentation中找到有关正确语法的更多信息。

实际上,我认为你只有fruitVariety的值,而不是fruitName;)