🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

1回答

1152閲覧

mariadbのデータphpのグラフに取り込む方法

szzu

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2021/01/14 01:08

編集2021/01/15 04:53

現在mariadbのデータをphpに反映させようとしています。
phpはグラフを使って反映しようとしてます。現在作っているのはマスクの着用率をidを使ってまた日付も登録しているのでそこも表そうとしています。試しに値を入れて計算してだせるようにはなったのですが、maraidbのデータを取り込める方法がわかりません。誰か教えてください!! 時間は出るのですが日付がでません
試しに作ったのを載せます。

<?php session_start(); $date=("YY/m/d"); ?> <html> <head> <style> table { border-collapse: collapse; } td { border: solid 1px; padding: 0.5em; } </style> </head> <body> <?php $dsn = 'mysql:dbname=kadai;host=localhost;charset=utf8'; $user = "root"; $pass = "maria"; try{ $dbh = new PDO($dsn, $user, $pass); $sql = "select id, 学籍番号, 名前 , 日付 from マスク有"; $sql2 = "select count(id) from マスク有"; $sql3 = "select time(日付) from マスク有 "; echo '<table border="1">'; echo '<tr><th>ID</th><th>time</th><th>image</th><th>date</th></tr>'; $res = $dbh->query($sql2); $re = $dbh->query($sql3); foreach($res as $value){ echo '<tr><td>'.$value["count(id)"].'</td>'; // echo '<tr><td>'.$value["time(日付)"].'</td>'; //echo '<tr><td>'.$value["cnt"].'</td>'; } foreach($re as $data){ //echo '<tr><td>'.$value["count(id)"].'</td>'; // echo '<tr><td>'.$data["time(日付)"].'</td>'; echo '<tr><td>'.$data["time(日付)"].'</td>'; } }catch(PDOException $e){ print('Error:'.$e->getMessages()); die(); } ?> <html lang="ja"> <head> <meta charset="utf-8">  <title>グラフ</title> </head> <body> <h1>マスク着用率</h1> <canvas id="myLineChart"></canvas> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.js"></script> <script> var hoge = <?php echo json_encode($value["count(id)"]); ?>; var time = <?php echo json_encode($data["time(日付)"]); ?>; var half = hoge/2; var ctx = document.getElementById("myLineChart"); var myLineChart = new Chart(ctx, { type: 'line', data: { labels: [time,'8月1日', '8月2日', '8月3日', '8月4日', '8月5日', '8月6日', '8月7日'], datasets: [ { label: 'マスク着用率', data: [half, 34, 37, 35, 34, 35, 34, 25], borderColor: "rgba(255,0,0,1)", backgroundColor: "rgba(0,0,0,0)" }, ], }, options: { title: { display: true, text: '着用率(8月1日~8月7日)' }, scales: { yAxes: [{ ticks: { suggestedMax: 40, suggestedMin: 0, stepSize: 5, callback: function(value, index, values){ return value + '%' } } }] }, } }); </script> </body> <html> コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/01/14 01:22

コードはマークダウンのcode機能にてご提示ください。 あと、グラフにどういうデータを与えればよいかが分かれば、その形式に整形した文字列を出力するだけかと思いますが、現状だとどこまでできている(分かっている)のでしょうか
FKM

2021/01/14 01:37

mariaDBとmysqlは互換性を持っています。mysqlのデータは普通に呼び出せる状態なのでしょうか。
szzu

2021/01/14 02:09

mysqlのデータは呼び出せます。今回やりたいことはmariadbに登録されたデータをグラフを使って呼び出すということです。なのでこのデータも試しにデータを入れて計算している状態です。
m.ts10806

2021/01/14 02:13 編集

質問は編集できますので。
szzu

2021/01/14 02:13

今回やりたいことはmariadbに登録されたデータをグラフにそのまま反映させて登録された時間とマスクの着用率を表したいと考えています
m.ts10806

2021/01/14 02:14

形式わかってるようなので、PHPでその形式に整形した文字列を出力するだけかと
szzu

2021/01/14 02:18

すいません。言っていることはわかるのですが初心者なのでコードを書くのがわからないです。出来たらコードで表してくれたら嬉しいです。お願いします。
m.ts10806

2021/01/14 02:52 編集

どこまで分かってるか次第です。 「PHPがやっているのは文字列の出力だけで、PHPにとってはhtmlやjsはその文字列の集合体にすぎない」というのはわかりますか? この前提がわかっていないと、コードを出したところで理解にはつながらないと思ってます。 ただ、「データがどうなってるか」分からないからには、そのまま使えるようなコードにはなりませんよ。
szzu

2021/01/14 02:55

整形した文字列を入力とは具体的にどいうことですか?今回データベースの中のデータを反映したいのですが「PHPがやっているのは文字列の出力だけで、htmlやjsはその文字列にすぎない」というのはわかっているつもりです。
m.ts10806

2021/01/14 03:59

data: [half, 34, 37, 35, 34, 35, 34, 25],
m.ts10806

2021/01/14 04:01

↑これが現在固定値でグラフが出ているのであれば、PHPから取ってきた情報をこういう文字列になるように整形して出力するということ。 labelとかも同じですね。
szzu

2021/01/14 06:57

この場合日付をデータベースからとってきたいので$dataでできますか?
m.ts10806

2021/01/14 07:32 編集

データベースからとってきてもどこからでも結局単なる変数です。 「そのように作ればできる」という答え方になります。変数名も単なる命名でしかありません(意味のある名前にすべきではあるが、どういう情報をどのような形で保持しているかのほうが大事) 「htmlで使いやすい形に整形した情報」を保持させることですね。
szzu

2021/01/15 02:25

時間は出るようになったのですが、日付が出ません。 $sql3 = "select time(日付) from マスク有"; にしてそこから変数を使ってやったのですが、
m.ts10806

2021/01/15 02:29

文章で説明するより、コードを。
FKM

2021/01/15 02:31

まずは、プログラムより国語と算数の知識を使って設計できるかです。 プログラムなんて飾りです。
szzu

2021/01/15 04:53

編集して新しいコードを載せたので理由がわかったら教えてください。
guest

回答1

0

PHP

1$sql2 = "select count(id) as cnt from マスク有";

PHP

1echo '<tr><td>'.$value["cnt"].'</td>';

で、どうでしょう。

なお$sqlは使ってないので削除することが可能です。

投稿2021/01/14 01:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

szzu

2021/01/14 02:12

回答ありがとうございます。 すいません。今回やりたいことはmariadbに登録されたデータをグラフにそのまま反映させて登録された時間とマスクの着用率を表したいと考えています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問