現在、postgreSQL+phpで簡単なイベント検索機能付きのホームページを作っています。
DB側には、テーブルがひとつだけ。
日付、イベント名、場所などの列があり、場所が複数なため、同じ日付けで別のイベントという情報もあります。
表示したいのは、日付ごとの情報です。
しかも検索は○日~○日という風に数日間に渡って検索します。
つまり、
1月1日
イベント名:その1
場所:会場1
イベント名:その2
場所:会場2
---------
1月3日
イベント名:その3
場所:会場1
イベント名:その4
場所:会場4
---------
という感じです。
これが上手く行かないんですよね。
「考え方」で結構ですのでご教授頂けないでしょうか?
No.3ベストアンサー
- 回答日時:
#1です。
何が不明かよくわかりませんが、SQLで取得したあとの配列変数を使用して、行う簡単な処理を記述してみました。SQL取得部分は定数として書いちゃってます。動作確認済みです。(PHPははじめてなので変なところがあるとは思いますが。)<HTML>
<HEAD>
</HEAD>
<BODY>
<?php
$arr[0] = "2004-01-01";
$arr[1] = "2004-01-01";
$arr[2] = "2004-01-01";
$arr[3] = "2004-01-02";
$arr[4] = "2004-01-03";
$prev = $arr[0];
for($i=0;$i<5;$i++){
if($arr[$i] != $prev){
$prev = $arr[$i];
printf("------<BR>");
}
printf("date:%s<BR>", $arr[$i]);
}
printf("------");
?>
</BODY>
</HTML>
ご丁寧にありがとうございます。
実は昨日からようやくデータベースに再び取りかかったのですが、まだ解決してません....
でも、ちょっと時間も経ちすぎてしまいましたし、この辺で締め切りたいと思います。
No.2
- 回答日時:
私もPHP自体は、あまり詳しくありませんが・・・
SQLでデータを取り出すのと、書式(表示形式)を整理する処理は、別々に行えばよいのでは?
SELECTで取り出したデータは、次々に配列に追加しておいて、全部取り出したら、その配列を使ってループし、中のの日付文字列を操作するイメージで、比較も分岐も行えばよいかと。格納時に多次元配列を使っていれば、さらに楽かもしれません。
ロジックそのものは、#1の方のものでよいかと思います。
ご丁寧にありがとうございます。
実は昨日からようやくデータベースに再び取りかかったのですが、まだ解決してません....
でも、ちょっと時間も経ちすぎてしまいましたし、この辺で締め切りたいと思います。
No.1
- 回答日時:
1)select * from テーブル where 日付 >= to_date('検索開始日付','YYYY-MM-DD') and 日付 <= to_date('検索終了日付','YYYY-MM-DD') order by 日付,イベント名,場所;
でデータを取得する。
(検索日付の入力フォーマットが2004/3/11ならば、フォーマット文字列は'YYYY/MM/DD'にする。)
2)上記取得データ数、以下を繰り返す。
3)日付データが前データと同じ場合は"イベント名:"SQL取得イベント名
及び"場所:"SQL取得場所を出力する。
4)イベント名が前データと同じ場合は、"場所:"SQL取得場所のみ出力する。
5)日付データが前データと違う場合は"---------"を出力する。
で、どうでしょう。当方phpは知りませんので、ロジックだけ。
この回答への補足
こんばんは。
回答ありがとうございます。
どうにも引っかかっているのは実は、取得した日付とその次に取得した日付を比較する部分でして。
(ご存じないとのことですが)phpだと、その変数は$arr[0]などの可変変数なわけでして。
どこで比較するのか?という。
そこで何か発想を変えようかと思った次第でして。
引き続きよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- イベント・祭り ベルーナドームでイベント参加! 2 2022/08/26 16:11
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- 統計学 回帰分析検証不一致 5 2022/05/04 20:48
- その他(地域情報・旅行・お出掛け) 宿の手配で心配が 4 2023/02/10 09:18
- ゴールデンウィーク・シルバーウィーク 山口県40代独身男。5月連休3日間あります。どこかオススメの場所やイベント、過ごし方教えて下さい。 3 2022/04/20 05:21
- その他(行事・イベント) 冬 5 2022/11/27 21:42
- 写真・ビデオ 写真撮るの好きな方や、詳しい方に質問です。 写真を撮るときに、さりげなく今現在のタイムライン(202 3 2023/02/01 14:23
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- 事件・事故 韓国のハロウィンイベントについて 5 2022/11/02 08:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessの数値から時間に変換す...
-
今日の日付が入った行のデータ...
-
指定した年月までのデータを取...
-
SQL ブレーク処理について
-
SQLで部分的にGROUP BYしたいとき
-
エクセル 日付による並べ替え...
-
エクセルVBA 今日の日付行...
-
SQL*LOADER 最終列のLENが1
-
SQLサーバで和暦から西暦に変換...
-
重複するIDのデータを1行にま...
-
Excelの並び替え(先頭の文字以...
-
SQLでの抽出方法について 以下...
-
wordの差し込み印刷での日付表示
-
日付書式に変換でこまっています!
-
OSのシステム日付を変更して...
-
関数IFで、指定日付範囲のデー...
-
日付時刻+連番の主キーをSQLだ...
-
エクセル上の8桁の数字を一括し...
-
23時59分59秒までのデータを抽...
-
SQL スクリプトのご相談
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
今日の日付が入った行のデータ...
-
Accessの数値から時間に変換す...
-
SQLで部分的にGROUP BYしたいとき
-
SQLサーバで和暦から西暦に変換...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
エクセル 日付による並べ替え...
-
エクセルVBA 今日の日付行...
-
oracle 文字列 01:45 を時間に...
-
23時59分59秒までのデータを抽...
-
WHERE句にて「30日前から今日ま...
-
テーブルの主キーをdate型...
-
特定の日付が第何週目にあるか...
-
SQLite3のtext→date変換について
-
SQLで今日の日付でWhereしたい
-
ExcelのSUMPRODUCTで日付の範囲...
-
日付の切り出し方法について
-
指定した年月までのデータを取...
-
4バイトの日付データを、16進数...
-
日付型なら変数の先頭になん...
-
wordの差し込み印刷での日付表示
おすすめ情報