Wie fügt man aus Dropdowns ausgewählte Daten mit php in die mySQL-Tabelle ein?

Wenn Sie 5 Dropdowns für die Datumsauswahl haben (Y, m,d, H,i), wie fügen Sie das ausgewählte Datum und die Uhrzeit in eine einzelne Spalte einer mySQL-Tabelle als Datumszeit mit PHP5 ein?

Ich weiß, dass sie in einer Zeichenfolge wie

$DateTime="$Year-$Month-$Day $Hour:$Minute:00";

kombiniert werden müssen und dann vielleicht strtotime verwenden:

$Date=date('Y-m-d H:i:s', strtotime($DateTime)) ;

, aber wo deklarierst ich die Variablen und wie baue ich sie in eine Abfrage wie:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "details")) {

$insertSQL = sprintf("INSERT INTO sessions (Location1, Location2, Date)
 VALUES (%s, %s, $s)",

                       GetSQLValueString($_POST['Location1'], "text"),
                       GetSQLValueString($_POST['Location2'], "text"),
                       GetSQLValueString($_POST[' ???? '], "date"));

Antwort auf "Wie fügt man aus Dropdowns ausgewählte Daten mit php in die mySQL-Tabelle ein? " 4 von antworten

Sie können auch in die mktime()-Funktion schauen: http://ca.php.net/mktime

Sie müssten dann nur Ihre Datumsvariable wie deklarieren:

$date = mktime($_POST['H'],$_POST['i'],0,$_POST['m'],$_POST['d'],$_POST['Y']);

$location1 = mysql_real_escape_string( $_POST['Location1'];
$location2 = mysql_real_escape_string( $_POST['Location2'];

$insertSQL = "INSERT INTO sessions (Location1, Location2, Date) VALUES ('$location1', '$location2', $date)";

mysql_query( $insertSQL );

EDIT:

Oder, mit dem sprintf-Format, das Sie verwenden:

$date = mktime($_POST['H'],$_POST['i'],0,$_POST['m'],$_POST['d'],$_POST['Y']);  

$insertSQL = sprintf("INSERT INTO sessions (Location1, Location2, Date)
     VALUES (%s, %s, $s)",
    
                           GetSQLValueString($_POST['Location1'], "text"),
                           GetSQLValueString($_POST['Location2'], "text"),
                           GetSQLValueString($date, "date"));

Ich habe die GetSQLValueString-Funktion aber noch nie verwendet, also kann ich nur davon ausgehen, dass dies der richtige Weg ist, es zu verwenden.

Erstellen Sie eine Dienstprogrammfunktion, die zwischen dem 'Anzeigemodus' und dem MySQL-Modus konvertiert, wird ti in Zukunft in mehreren anderen Projekten nützlich sein.

Date - Return a string, formatted according to the given format string - Geben Sie eine Zeichenfolge zurück, die nach der angegebenen Formatzeichenfolge

MkTime - Get a Unix timestamp for a date formatiert ist - Erhalten Sie einen Unix-Zeitstempel für ein Datum

Strtotime - Parse English textual datetime description into a Unix timestamp - Analysieren Sie die englische Textdatumszeitbeschreibung in einen Unix-Zeitstempel

MySQL bietet eine Funktion, um Ihnen dies einfach zu machen. FROM_UNIXTIME(). I would use . Ich würde mktime() to get your date to a timestamp, as it's overhead is much less than strtodate, since you know the date-parts there is no need to parse it as a string. verwenden, um Ihr Datum auf einen Zeitstempel zu bringen, da der Overhead viel kleiner als strtodate ist, da Sie die Datumsteile kennen, gibt es keine Notwendigkeit, es als Zeichenfolge zu analysieren.

Das Folgende ist der geradlinigste Ansatz, den ich mir vorstellen kann:

$date = mktime($_POST['H'], $_POST['i'], 0, $_POST['m'], $_POST['d'], $_POST['Y']);

$location1 = mysql_real_escape_string( $_POST['Location1'];
$location2 = mysql_real_escape_string( $_POST['Location2'];

$insertSQL = "INSERT INTO sessions (Location1, Location2, Date) VALUES ('$location1', '$location2', FROM_UNIXTIME($date))";

Ich gehe davon aus, dass GetSQLValueString is the Dreamweaver custom function (I've only heard of it). I'm sure you can adopt this into your implementation, though. die benutzerdefinierte Dreamweaver-Funktion ist (ich habe nur davon gehört). Ich bin sicher, dass Sie dies in Ihre Implementierung übernehmen können.

(blonder Moment, denke ich! lol)

Danke an alle, die versucht haben zu helfen - die Antwort war viel weniger kompliziert Nur benötigt, um die post-Variablen zu deklarieren:

['startDate'] ="-- ::00";

Keine Zeitkonvertierungen erforderlich, da es bereits im Mysql-Format (YEY!) ist.