将数据从MySQL拉入json数组

时间:2012-04-17 03:30:38

标签: php mysql json

我正在尝试使用php中的json从我的数据库中提取数据。我需要具体的一些元素,然后将它们发布到页面上。

我想从mysql“获取”数据并将其返回到json_encode。如何使用SELECT方法执行此操作。有些人使用过PDO方法,有些人使用过mysql_assoc,这让我很困惑。

例如,

我有一行:'id','title','start','backgroundColor'......等等。以及所有这些的默认值。 ($ array [] =“someValue = default”)

我希望它像这样导出:

array(
      'id' => 1,
      'title' => "someTitle",
      'start' => "2012-04-16",
      'backgroundColor' => "blue",
      'someValue' = > "default",
      ...
      ),   ....
 ));

如果有人能用最好的细节帮助我,我会很棒!

4 个答案:

答案 0 :(得分:10)

如果你想用PDO做这个,那么这是一个例子:

<?php 
$dbh = new PDO("mysql:host=localhost;dbname=DBNAME", $username, $password);

$sql = "SELECT `id`, `title`, `time`, `start`, `backgroundColor` 
        FROM my_table";

$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
//To output as-is json data result
//header('Content-type: application/json');
//echo json_encode($result);

//Or if you need to edit/manipulate the result before output
$return = [];
foreach ($result as $row) {
    $return[] = [ 
        'id' => $row['id'],
        'title' => $row['title'],
        'start' => $row['start'].' '.$row['time'],
        'backgroundColor' => $row['backgroundColor']
    ];
}
$dbh = null;

header('Content-type: application/json');
echo json_encode($return);
?>

答案 1 :(得分:5)

你没有“获取json数组”。

将数据库结果提取到PHP数组中,然后将这个php数组转换为json字符串后转换为json字符串。

e.g。

$data = array();
while ($row = mysql_fetch_assoc($results)) {
   $data[] = $row;
}
echo json_encode($data);

答案 2 :(得分:1)

您可以从mysql获取结果,然后将其格式化为json

    $array = array();
    while($row = mysqli_fetch_array($result))
    {
        array_push($array,$row);
    }
    $json_array = json_encode($array);

答案 3 :(得分:0)

请检查SELECT方法here

一般来说,它看起来像这样

$data = array(); // result variable

$i=0

$query = "SELECT id,title,start,backgroundColor FROM my_table"; // query with SELECT

$result = mysql_query($query);


while($row = mysql_fetch_assoc($result)){ // iterate over results
      $data['item'][$i]['id'] = $row['id']; // rest similarly 
      ...
      ...

      $i++; 
}

header('Content-type: application/json'); // display result JSON format
echo json_encode(array(
     'success' => true,
     'data' => $data // this is your data variable
));