回答編集履歴

1 コメント追記

退会済みユーザー

退会済みユーザー

2016/12/25 20:21  投稿

これで動くでしょうか。
PHPやJavascriptのコードがごっちゃごっちゃになっているので、全体的に書き方を見直したほうがいいと思います。  
```PHP
function shortcode1Func() {
$dsn = 'mysql:host=ホスト名;dbname=データベース名;charset=utf8';
 // データベースのユーザー名
$user = ユーザー名;
 // データベースのパスワード
$password = パスワード;
// tryにPDOの処理を記述
try {
 // PDOインスタンスを生成
 $dbh = new PDO($dsn, $user, $password);
// エラー(例外)が発生した時の処理を記述
} catch (PDOException $e) {
 // エラーメッセージを表示させる
 echo 'データベースにアクセスできません!' . $e->getMessage();
}
$output = <<< EOF
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawContinuousDateChart);
function drawContinuousDateChart() {
var data = google.visualization.arrayToDataTable([
['分', '通信量'],
EOF;
  $sql = "SELECT * FROM mtraffics";
  $stmt = $dbh->query($sql);
  foreach ($stmt as $row) {
  $output .= "['".$row["date"]."',".$row['volume']."],"; //グラフに出力する情報(日付、ランキング数値)
  }
$output .= <<< EOF
]);
EOF;
$output .= <<< EOF
//デザイン変更
var options = {
   //title:'ランキング', //タイトル
   //width: 1000, //横幅
   //height: 150, //高さ
   colors:['#FF0000', '#0000FF'], //文字の色
   hAxis:{showTextEvery:1},//インデクスの表示
   //Axis: {direction: -1, minValue: 1},
   lineWidth: 1, pointSize: 10, //ラインの横
   titleTextStyle: { fontSize: 12 },   //文字サイズ
   legend : { position: 'top'},   //タイトルポジション
};
var chart = new google.visualization.LineChart(document.getElementById('today'));
chart.draw(data, options);
}
</script>
EOF;
return $output;
}
add_shortcode('shortcode1', 'shortcode1Func');
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る