人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MYSQLから得たデータをPHPにて表示したいのですが
当日のデータ、前日のデータ、前々日のデータと
ボタンを押すなどのタイミングで遡って表示させたいのですがどうすれば良いのでしょうか?
可能でしょうか?
例)
売上テーブル
種類 売上日 値段 個数
リンゴ 2013/03/30 120円 3個
リンゴ 2013/03/29 110円 4個

参考になるURLやコードを教えてもらえると助かります。

●質問者: sora199
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
ベストアンサー

一例

<?php

// 日付受取と確認
// 渡された日付が書式として正しいかどうかはstrtotimeの判定に委ねている
// 日付が無い場合や書式としておかしな場合は現在日時を用いる
if ( ( $d = strtotime($_GET['date']) ) === False ) $d = time();

// 日付を文字列化して以後扱いやすくする
// 前日の計算は 86400秒 を引くことで行う
$target = date( 'Y/m/d', $d ); 
$pre = date( 'Y/m/d', $d - 86400 );

// ボタン作成
// 日付で/を用いているのでurlencodeを用いて整形
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?date=' . urlencode( $pre ) . '">前日(' . $pre . ')</a>';

// SQL生成
$s = "SELECT * FROM 売上テーブル WHERE 売上日 = '" . $target . "'";

// SQL実行
// SQLを実行したつもりでSQL文を返してます。
echo '<br />' . $s;

うぃんどさんのコメント
>Notice: Undefined index: date in ? phpの設定によって変えることもできますが、 php側で対応しておく例を書いておきます。 >|php| if ( isset($_GET['date']) ) { if ( ( $d = strtotime($_GET['date']) ) === False ) $d = time(); } else { $d = time(); } ||<

sora199さんのコメント
ありがとうございます。 解決することができました。

sora199さんのコメント
売上テーブル 種類 売上日 値段 個数 リンゴ 2013/03/30 120円 3個 リンゴ 2013/03/29 110円 4個に 売上日に時間が含まれている場合には変更は必要なのでしょうか?

うぃんどさんのコメント
>売上日に時間が含まれている場合 売上日も日付だけにしてあげないと比較はできないのでDATE関数で時刻部分をカット >|php| $s = "SELECT * FROM 売上テーブル WHERE DATE(売上日) = '" . $target . "'"; ||<

sora199さんのコメント
ありがとうございました。 解決できました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ