0

以下答案建议使用 mysql_ 工作,但是我决定切换到 PDO 以提高安全性(如果提供)。但是,当我应用相同的代码时,我很难让它工作。我不得不切换whileforeachPDO。

更新:使用 PHP PDO

$sql  = "SELECT * FROM userrecords";
$stmt = $conn->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();

 foreach ($data as $row)
 {
  $dateArray = explode('-', $row['eventdate']);
  $year = $dateArray[0];
  $month= $dateArray[1] - 1;
  $day= $dateArray[2];

  $dataArray[] = "[new Date ($year, $month, $day), {$row['scientificname']}, {$row['category_of_taxom']}]";

 }
 echo $dataArray;
4

1 回答 1

0

在您的其他问题的解决方案的基础上,您必须将日期解析为 javascript 的 Date 对象格式:

$dataArray = array();
while($row = mysqli_fetch_array($result)) {
    $dateArray = explode('-', $row['Date']);
    $year = $dateArray[0];
    $month = $dateArray[1] - 1; // subtract 1 since javascript months are zero-indexed
    $day = $dateArray[2];
    $dataArray[] = "[new Date($year, $month, $day), {$row['SpeciesA']}, {$row['Speciesb']}]";
}

因为 json_encode 函数会破坏这里的日期,所以我们必须将其解析到 DataTable 构造函数中:

var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
data.addColumn('number', 'Species A');
data.addColumn('number', 'Species B');
data.addRows(<?php echo '[' . implode(',', $dataArray) . ']'; ?>);
于 2013-08-20T14:38:26.430 回答