Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTML Date Input to SQL using php

Tags:

html

php

mysql

I have been trying to Use a form written in HTML to input a "Name" and a "Date" into a SQL Database.

Concerning the connection to SQL everything is fine. It is just that using the the HTML5 Date Input type (which include a drop down calendar) the data and PHP does not seem to show up. When I input the data into the SQL table the "Name" shows up but the "Date" remains blank. I have put some of my code below. The Form is input.html and the data handling code is table.php. The DB name is users and the table name is staff.

input.html

<html>
<form action='table.php' method='POST'>
    Name <input type="text" name="name"> <br />
    Date of Expiry <input type="date" name="date1"> <br />
    <input type="submit" name="submit" value="Submit"> <br />
</form>
</html>

table.php

<?php
  $name = $_POST["name"];
  $date1 = $_POST["date1"];
  $servername = "exampleserver.net";
  $uname = "exampleusername";
  $pass = "password";
  $dbname = "users";
  $errors = array();
  $conn = new mysqli($servername, $uname, $pass, $dbname);
  if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
  } 
  if(mysqli_query($conn,"INSERT INTO staff (`name`, `date1`) VALUES('$name','$date1')")) { 
    header("Location: http://newpageafterdataentry.com"); 
    die(); 
  } else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
  } 
  mysqli_close($conn);
?>
like image 680
Sasha Sen Avatar asked Jul 09 '15 10:07

Sasha Sen


Video Answer


1 Answers

You can use strtotime() for converting into timestamp and date() for formatting before saving into DB mysql.Try following:

$day1 = strtotime($_POST["date1"]);
$day1 = date('Y-m-d H:i:s', $day1); //now you can save in DB

Full code should be:

<?php
  $name = $_POST["name"];
  $day1 = strtotime($_POST["date1"]);
  $day1 = date('Y-m-d H:i:s', $day1); //now you can save in DB
  $servername = "exampleserver.net";
  $uname = "exampleusername";
  $pass = "password";
  $dbname = "users";
  $errors = array();
  $conn = new mysqli($servername, $uname, $pass, $dbname);
  if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
  } 
  if(mysqli_query($conn,"INSERT INTO staff (`name`, `date1`) VALUES('$name','$date1')")) { 
    header("Location: http://newpageafterdataentry.com"); 
    die(); 
  } else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
  } 
  mysqli_close($conn);
?>
like image 93
Manwal Avatar answered Sep 30 '22 18:09

Manwal