0

php では、アクティブ化された日付内にページにメッセージを表示したいということは、管理者によって日付から日付までが選択され、選択された日にメッセージがページに表示されることを意味します。日付ピッキングには、jQuery datepickerを使用しました。このようなデータベースを作成しました

CREATE TABLE IF NOT EXISTS `messagebox` (
  `message_id` int(10) unsigned NOT NULL auto_increment,
  `message` varchar(255) NOT NULL,
  `start_date` date NOT NULL,
  `end_date` date NOT NULL, 
    PRIMARY KEY (`message_id`))
    ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8'))

管理者用の私のフォームは次のようになっています

<form id="formID"  method="post"  action="'.$_SERVER['REQUEST_URI'].'" enctype="multipart/form-data">

            <label>Message</label>
            <div class="margin-form"><input class="text-input" type="text"  name="message" id="message" value=""/></div>
            <label>Start Date</label>
            <div class="margin-form"><input class="text-input" type="text"  name="start_date" id="start_date" value=""/> </div>
            <label>End Date</label>
            <div class="margin-form"><input class="text-input" type="text"  name="end_date" id="end_date" value=""/> </div>
            <input type="submit" name="submit_announcement" class="button"  value="Save"/>
            </div>
          </form>

データを挿入するために私のコードは行きます

if(isset($_POST['submit_announcement'])) {
            'INSERT INTO `messagebox` (`message_id`,`message`,`start_date`,`end_date`) VALUES ("","'.$message.'","'.$start_date.'","'.$end_date.'") ';
          }
          echo "Settings updated successfully";
          else {
          echo "You have some errors";
          }

ここで、データがデータベースに挿入されたことがわかります。ビューページでデータを取得しています。

$sql_query = mysql_query("SELECT * FROM messagebox") or die(mysql_error());
          while($row = mysql_fetch_array($sql_query)){
          $message_details = $row['message'].;
            echo $message_details;
          }

ここですべてのメッセージを取得しましたが、その時間形式 (start_date から end_date まで) 内に設定されたメッセージのみを表示したいと思います。終了日を超えると、メッセージは無効になります。それで、誰かが親切にこれを行う方法を教えてもらえますか?

4

1 に答える 1

0

ビューページで開始日と終了日を取得する方法があると思いますが、その日付範囲の間にあるメッセージを選択するために where 句を追加する必要があると仮定しています。しかし、挿入されたメッセージの日付のフィールドがありません。それをテーブルに追加する必要があります。その後、BETWEEN演算子を使用できます。したがって、クエリは次のようになります

SELECT * FROM messagebox WHERE dateinserted BETWEEN $start_date AND $end_date;

$start_date$end_date適切な日付形式の文字列である必要があります。

于 2013-09-28T12:14:50.607 に答える