2016-07-21 12 views
1

Ich versuche, den Benutzer ein Datum eingeben und PHP-Anzeige Datensätze, die Datum (Datum Typ Feld) ist gleich dem Datum der Benutzer eingegeben. Ich bekomme immer null Ergebnisse, wenn es mindestens 1 anzeigen sollte.SELECT WHERE Datum ist gleich was Benutzer eingegeben nicht funktioniert

Hier ist mein aktueller Code. Beachten Sie, dass ich etwas für den Fall zu füllen hatte der Benutzer verlässt das Datum Textfeld leer ist (falls er nicht nach Datum suchen will)

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

und den Abschnitt:

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

Ich zeige nur die benötigten Teile, aber dieser Code funktioniert, bis ich den Datumsvergleichsteil von ihm hinzufügte. Ich muss nur Datensätze anzeigen, deren Datum mit dem Datum übereinstimmt, an dem der Benutzer eingibt. Das Joindate-Feld in der Datenbank ist ein Datumstypfeld (JJJJ-MM-TT) wie 2015-07-21. Es gibt keinen Datumstyp in mysqli_stmt_bind_param, also habe ich s verwendet. Selbst wenn der Benutzer 2015-07-21 oder 2015-7-21 eintippt bekomme ich null Ergebnis. Was mache ich falsch?

+0

Konvertieren Sie einfach beide Datumsangaben in WHERE-Klausel in dasselbe Format – Nosyara

Antwort

0

könnte ein Problem zu date_format

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

Die strtotime() Funktion gibt eine Epoche, nicht das Format Datum, das Sie benötigen, in Verbindung stehen.

Versuchen

strtotime ($ _ POST [ "userinputdate"])

Mit

date ('Ym-d', strtotime ($ _ POST [ "userinputdate ersetzen "]))

Sie werden auch die erste Zeile nicht weiter benötigen.