2015-07-09 17 views
5

Ho cercato di utilizzare un modulo scritto in HTML per immettere un "Nome" e una "Data" in un database SQL.

Per quanto riguarda la connessione a SQL, tutto va bene. È solo che usando il tipo Data Input HTML5 (che include un calendario a discesa) i dati e PHP non sembrano apparire. Quando inserisco i dati nella tabella SQL, compare "Nome" ma la "Data" rimane vuota. Ho messo un po 'del mio codice qui sotto. Il Form è input.html e il codice di gestione dei dati è table.php. Il nome DB è utenti e il nome della tabella è personale.Data di input HTML su SQL utilizzando php

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); 
?> 
+1

È il tipo di dati del 'date' colonna 'Data'? Ciò comporterebbe la mancata accettazione da parte del database di informazioni sulla data non formattate in formato data MySQL (ad esempio YYYY-MM-DD). –

+1

provare a scaricare '$ date1' e postare il dump qui (' var_dump ($ date1) '), ho il sospetto che il formato della data non sia come previsto –

+1

non direttamente correlato al problema, ma si prega di ricordare correttamente [sfuggire all'input dell'utente ] (http://php.net/manual/de/mysqli.real-escape-string.php) che usi nella tua query! – jhinzmann

risposta

3

È possibile utilizzare strtotime() per la conversione in timestamp e date() per la formattazione prima di salvare nel DB mysql.Try seguente:

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

codice completo dovrebbe essere:

<?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); 
?> 
+0

Grande ha funzionato! Grazie mille Sono nuovo di SQL e non ero sicuro di come vengono salvate le date! –

Problemi correlati