2016-07-21 7 views
1

ユーザーに日付を入力させ、日付(日付型フィールド)のユーザーがユーザーが入力した日付と等しいPHP表示レコードを作成しようとしています。少なくとも1を表示する必要があるときはゼロの結果が得られます。SELECT WHERE日付がユーザーが入力したものと同じである

ここに私の現在のコードがあります。

$Bind_fdate = date("Y-m-d"); 
if ($_POST["userinputdate"] != "enterdatehere") {$Bind_fdate = strtotime($_POST["userinputdate"]);} 
mysqli_stmt_bind_param($stmt,"s",$Bind_fdate); 

:私は(彼が日付で検索したくない場合)、ユーザは空の日付のテキストボックスを離れる場合には、何か

$Query = 'SELECT fname,lastname FROM recordsdb WHERE joindate = ?';

とセクションを埋めるために持っていたことに注意してください私は必要な部分だけを表示していますが、このコードは日付比較部分を追加するまで機能します。ユーザーが入力した日付と一致する日付のレコードを表示するだけです。データベースの結合フィールドは、2015-07-21のような日付型フィールド(YYYY-MM-DD)です。 mysqli_stmt_bind_paramに日付の型がないので、sを使用しました。ユーザーが2015-07-21または2015-7-21と入力しても、結果はゼロになります。私は間違って何をしていますか?

+0

where句の両方の日付を同じ形式に変換するだけです – Nosyara

答えて

0

はエポックではなく、あなたが必要とするフォーマットされた日付を返しますDATE_FORMAT

"SELECT fname,lastname FROM recordsdb WHERE joindate = date_format(? , '%Y-%m-%d')"; 
0

のstrtotime()関数に関連した問題である可能性があります。

日付( 'YM-D'、のstrtotime($ _ POST [ "userinputdateで

のstrtotime($ _ POST [ "userinputdate"])

を交換してみてください"]))

さらに最初の行は必要ありません。

関連する問題