2016-05-22 9 views
0

私は別の質問があります。2つの日時のチケット

2つの日付と2回の間にチケットを表示すると、私は立ち往生します。

私は以下のテーブルフィールドを持っています:

開始日|| ticketSDate、開始時刻|| ticketSTime

終了日|| ticketEDate、終了時刻|| ticketETime

私は開始日が、今のように小さいか等しい場合は終了日及び終了時間は、今 と として大きなまたは等しいすべてのチケットを表示したい

誰も私をここに助けることができますか? おかげで、timeを考えるの欠陥のある概念だベニー

  <?php 

       $result = mysqli_query($con,"SELECT * FROM ticket WHERE ticketEDate >= NOW() AND ticketETime > NOW() AND ticketSDate <= NOW() ORDER by ticketSDate ASC"); 
       while($row = mysqli_fetch_array($result, MYSQL_BOTH)) { 



         echo '<tr> 
           <td><h8>'. $row['ticketName'] .'</h8></td><br> 

           <td><h4><strong>Begin:</strong> &nbsp; ',date("d.m.Y", strtotime ($row['ticketSDate'])),' &nbsp; ', date('H:i', strtotime ($row['ticketSTime'])).' hr.<h4></td> 
           <td><h4><strong>Einde:</strong> &nbsp; ',date("d.m.Y", strtotime ($row['ticketEDate'])),' &nbsp; ', date('H:i', strtotime ($row['ticketETime'])).' hr.<h4></td> 
           <td><h4>'. $row['ticketDescription'] .'</h4></td> 
           <td><h4>'. $row['ticketID'] .' <input name="book" type="button" value="Koop een ticket" /></h4></td> 
           <br><br> 
          </tr>'; 
        } 

      ?> 
+0

問題点は何ですか? – RomanPerekhrest

+0

ご質問をより明確にして、私たちの答えに焦点を当てるようにしてください。 –

答えて

1

。あなたは、私が終了日と終了時間が

大きないるすべてのチケットを表示したい

を言っているので、それが今日の後にある日付の意味が、時間はそれが何であるかはまだありません今、妥当でない偽を返します。

グループ化された条件を使用する必要があります。たとえば、End datetimeは現在よりも大きいです。

終了日が今日よりも大きい場合は、無意味な時間を忘れてしまいます。

WHERE ticketEDate > NOW() OR (ticketEDate = NOW() AND ticketETime > NOW()) 

開始と同じ概念です。

日付と時刻を1つのフィールドとして保存しておけば、クエリは非常に簡単です。

+0

ちょっとハッキーパンキー、ありがとうございました! 私は日付と時刻をデータベースの1つのフィールドに変換しました。今は2016-05-22 19:00:00のように保存されています。 私は以下を使用しました:SELECT * FROM ticket EVerkoop> NOW()とSVerkoop <= NOW()注文SVerkoop ASC – Benny

関連する問題