0

私は問題があります。複数のDJがラジオで音楽を作っていますが、時刻表を作りたかったので、DJに関する情報を含む多くの列を作成しましたが、12の異なる列に12の日時スタンプも含まれています。

問題は、最初の次の日付を選択するにはどうすればよいですか?または、現在の日付よりも高い日付の最初の列を選択するにはどうすればよいですか。そして、次のもの。

これが解決された場合、その下のスクリプトがどの変数を使用したかをどのように認識するので、エコーする別の問題が発生しました。

次の変数と列を使用しました:$ date1、$ date2、$date3など。

どうも!

4

2 に答える 2

0

通常、データベースから次の(次の)日付を取得するには、通常のSELECTステートメントを実行しますが、結果を「1」に制限し、WHERE句を使用して日付を取得し、結果が日付順に並べ替えられるようにします。

以下の例では、DBから次の日付のレコードを選択しました。これには、今日自体も含まれる場合があります。今日のレコードを気にしない場合は、selectコマンドの「newtime」変数を「todaydate」に変更するだけです。

$todaydate = date('Y-m-d');
$newdate = strtotime ( '-1 day' , strtotime ( $todaydate ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );

SELECT * FROM table WHERE date > '$newdate' ORDER BY table.`date`ASC LIMIT 1
于 2012-12-30T02:44:09.663 に答える
0
SELECT *
FROM (
    SELECT dj, 'date1' whichdate, if (date1 >= now(), date1, null) nextdate
    union
    SELECT dj, 'date2' whichdate, if (date2 >= now(), date2, null) nextdate
    union
    SELECT dj, 'date3' whichdate, if (date3 >= now(), date3, null) nextdate
    union
    SELECT dj, 'date4' whichdate, if (date4 >= now(), date4, null) nextdate
    union
    SELECT dj, 'date5' whichdate, if (date5 >= now(), date5, null) nextdate
    union
    SELECT dj, 'date6' whichdate, if (date6 >= now(), date6, null) nextdate
    union
    SELECT dj, 'date7' whichdate, if (date7 >= now(), date7, null) nextdate
    union
    SELECT dj, 'date8' whichdate, if (date8 >= now(), date8, null) nextdate
    union
    SELECT dj, 'date9' whichdate, if (date9 >= now(), date9, null) nextdate
    union
    SELECT dj, 'date10' whichdate, if (date10 >= now(), date10, null) nextdate
    union
    SELECT dj, 'date11' whichdate, if (date11 >= now(), date11, null) nextdate
    union
    SELECT dj, 'date12' whichdate, if (date12 >= now(), date12, null) nextdate
)
WHERE nextdate IS NOT NULL
ORDER BY dj, nextdate
于 2012-12-30T06:44:53.670 に答える