【PHPとDBの連動】時刻表作成
PHPとDBを利用して、このような時間表を作成したいのです。
| 時 | 到着 |
| 間 | 時間(分)|
----------------
| 6 | |
| 7 | 00 30 |
| 8 | |
| 9 | |
| 10 | 24 |
| 11 | |
| 12 | 30 57 |
| 13 | |
:
:
:
| 23 | 03 |
| 24 | |
反映させるDBは以下のとおり
テーブル名:time
|番 | 時 |
|号 | 刻 |
------------
| 1 | 7:00 |
| 2 | 7:30 |
| 3 | 10:24|
| 4 | 12:20|
| 5 | 12:57|
| 6 | 23:03|
------------
このDBの内容を、上の表にある時間と照らし合わせ、
表の7時の欄にはDBの番号(1)と(2)にある「7:00」と「7:30」の「分」の部分だけを
「到着時間(分)」に表示させたいんです。
どのようにすればいいのか全く分からないので、
難しい説明ですが、どうかお願いします。
No.3ベストアンサー
- 回答日時:
>時間表に関する「時間」は、PHP側で出しておきたいんです。
同感です。SQLになんでもやらせるよりは、その方がいいですね。
こんなかんじでどうですか?
$sql=<<<eof
select `時間`,group_concat(`分` separator ' ') as `到着時間(分)`
from (select hour(時刻) as `時間`,DATE_FORMAT(時刻,'%i') as `分` from `時刻表テーブル`) as sub
group by `時間`
eof;
$res=mysql_query($sql);
while($rows = mysql_fetch_array($res,MYSQL_ASSOC)){
$jikoku[$rows["時間"]]=$row["到着時間(分)"];
}
$tempHtml="";
for($i = 6; $i <= 24; $i++){
$tempHtml .= "<tr><td>{$i}</td><td>{$jikoku[$i]}</td></tr>\n";
}
print "<table>{$tempHtml}</table>";
この回答への補足
返事が遅くなり、大変申し訳ございません。
もうひとつだけ補足が・・・、何度も申し訳ないです。
説明本文の前半は実は、DBではないんです。
PHPであのように表示させたいという、完成予想図みたいなものなんです。
ですので、上の表にある「時間」や「到着時間(分)」も、DBの列名ではなく、PHPで記入したものなのです。
今のところ、PHP上に時間(6時~24時の欄)を表示させることはできました。
しかし、DBに登録している時刻をうまくページに載せることができませんでした。
もしかしたら、画像つきで同じ質問をするかもしれません。今の状態では伝わりにくいのも当たり前ですからね・・・。
本当にyambejpさんには迷惑かけてしまいました。申し訳ございません。
大変遅くなってしまい、申し訳ございません。
yambejpさんの回答を元に、期待していた結果が返ってきて、解決できました。
本当にありがとうございました。
No.2
- 回答日時:
>テーブル名:time
予約語のからみがあるので時刻表テーブルとします。
create table `時刻表テーブル`(`番号` int,`時間` time);
insert into `時刻表テーブル` value(1,'7:00' ),(2,'7:30' ),(3,'10:24'),(4,'12:20'),(5,'12:57'),(6,'23:03');
ここで以下のSQLで処理をすれば当座分の時刻表がえられます。
select `時間`,group_concat(`分` separator " ") as `到着時間(分)`
from (select hour(時刻) as `時間`,DATE_FORMAT(時刻,"%i") as `分` from `時刻表テーブル`) as sub
group by `時間`;
6時から24時まで空欄も含めてだすなら、時刻管理テーブルを用意しておき
create table `時間管理テーブル`(`時刻` int);
insert into `時間管理テーブル` values(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24);
こうします
select `時間`,COALESCE(`分`,"") as `到着時間(分)`
from `時間管理テーブル`
left join(
select `時間`,group_concat(`分` separator " ") as `分`
from (select hour(時刻) as `時間`,DATE_FORMAT(時刻,"%i") as `分` from `時刻表テーブル`) as sub
group by `時間`
) as sub2 using (`時間`)
この回答への補足
あ、大事なことを書き忘れていました。申し訳ございません。
できれば、時間表に関する「時間」は、PHP側で出しておきたいんです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
今はPHPでこんな感じにやっています。
for($i = 6; $i <= 24; $i++){
$tempHtml .= "<tr>";
$tempHtml .= "<td>$i</td>";
:
:
$tempHtml .= "</tr>\n";
}
<html>
:
<?= $tempHtml ?>
:
</html>
何度も質問してしまい、申し訳ございませんが、
どうかよろしくお願いします。
No.1
- 回答日時:
(時刻6~24まで繰り返し as $i){
1:時間$iに対し表示するデータをDBから持ってくる
2:分の部分だけ抜き出し。
3:表示する
}
とすればいいかと思います。
分に抜き出すのはDB上でやる場合とPHPでやる場合が考えられます。
※実際に私が作るのでしたら、DBのtimeに日付を追加し登録する時刻と分を分けるとかやると思います。
あと繰り返してDBから抜き出すものめんどうなので、同じ日のデータを時間と分で分けて抜き出して時の多次元配列とかに入れてしまったほうが効率がよいと思います。
この回答への補足
回答ありがとうございます。ではこの場合はやはり「foreach」を使っていったほうがいいのでしょうか?
自分でも調べていくのですが、どうかよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- MySQL AWSのRDSを無料枠で使用しておりますが、2日前にDBインスタンスを作成し、現在確認したらDBイン 1 2022/07/19 23:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
トランザクション処理
-
カラムにデータがあるかないか...
-
クエリObjectをforeachで回す時...
-
PHPでいいね機能を作りたいので...
-
変数にNULLを代入したい
-
予約システムを作りたい
-
エクセルVBAについて
-
SQL文の実行に失敗しました???
-
VBAをつかってクエリの情報を抽...
-
PHPでMY SQLの連想配列をリンク...
-
PHP + MySQLを使用して詳細画面...
-
Q&Aサイトを作成していてURLの...
-
MySQLでshal()関数のエラーがで...
-
SQL文2つ実行
-
SQL文が実行できません
-
エラーの意味と対策
-
PHP+mysqlでSQL文に文字数制限...
-
mysql_fetch_objectの書き方を...
-
データベースに存在するデータ...
-
MySQLへの接続
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLでデータベースにデータin...
-
変数にNULLを代入したい
-
phpにて出欠登録管理を作成して...
-
phpでテーブルを作る際変数によ...
-
csvをDBへ読み込んだら、NULLが...
-
SQLで返り値が空とでる
-
ヒアドキュメントでSQLを書く事...
-
php sqlite count 列数取得
-
OracleからAccessへのインポート
-
変数を組み入れたい
-
日またぎの計算
-
Accessへ日付をINSERT
-
任意の値の取得
-
クエリObjectをforeachで回す時...
-
PHPでいいね機能を作りたいので...
-
会員番号等に利用するダブらな...
-
PHP PDOを利用してカラムの削除...
-
SQL CASE 文について
-
phpを使用し、カテゴリー別に表...
-
トランザクション処理
おすすめ情報