アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、postgreSQL+phpで簡単なイベント検索機能付きのホームページを作っています。
DB側には、テーブルがひとつだけ。
日付、イベント名、場所などの列があり、場所が複数なため、同じ日付けで別のイベントという情報もあります。

表示したいのは、日付ごとの情報です。
しかも検索は○日~○日という風に数日間に渡って検索します。

つまり、
1月1日
イベント名:その1
場所:会場1
イベント名:その2
場所:会場2
---------
1月3日
イベント名:その3
場所:会場1
イベント名:その4
場所:会場4
---------

という感じです。
これが上手く行かないんですよね。
「考え方」で結構ですのでご教授頂けないでしょうか?

A 回答 (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>
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
実は昨日からようやくデータベースに再び取りかかったのですが、まだ解決してません....
でも、ちょっと時間も経ちすぎてしまいましたし、この辺で締め切りたいと思います。

お礼日時:2004/03/26 23:28

私もPHP自体は、あまり詳しくありませんが・・・


SQLでデータを取り出すのと、書式(表示形式)を整理する処理は、別々に行えばよいのでは?

SELECTで取り出したデータは、次々に配列に追加しておいて、全部取り出したら、その配列を使ってループし、中のの日付文字列を操作するイメージで、比較も分岐も行えばよいかと。格納時に多次元配列を使っていれば、さらに楽かもしれません。
ロジックそのものは、#1の方のものでよいかと思います。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
実は昨日からようやくデータベースに再び取りかかったのですが、まだ解決してません....
でも、ちょっと時間も経ちすぎてしまいましたし、この辺で締め切りたいと思います。

お礼日時:2004/03/26 23:29

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]などの可変変数なわけでして。
どこで比較するのか?という。

そこで何か発想を変えようかと思った次第でして。

引き続きよろしくお願いします。

補足日時:2004/03/11 21:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す