2015-07-09 13 views
5

Bir SQL Veritabanına "Ad" ve "Tarih" girmek için HTML ile yazılmış bir form kullanmaya çalışıyorum.

SQL bağlantısıyla ilgili olarak her şey yolunda. Sadece HTML5 Tarih Giriş türünü kullanarak (bir açılır takvim içeren) verileri ve PHP görünmüyor. Verileri SQL tablosuna girdiğimde, "İsim" görünür ancak "Tarih" boş kalır. Bazı kodlarımın altına koydum. Form input.html'dir ve veri işleme kodu table.php'dir. DB adı kullanıcılar ve tablo adı personel.HTML Tarihi php kullanarak SQL'e giriş

table.php

<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> 

input.html

<?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

'date' sütunda 'tarihi' bir veri türü var mı? Bu, veritabanının MySQL tarih biçiminde (ör. YYYY-AA-GG) biçimlendirilmemiş herhangi bir tarih bilgisini kabul etmemesi ile sonuçlanacaktır. –

+1

'$ date1 'dosyasını dökmeyi deneyin ve dökümü buraya gönderin (' var_dump ($ date1) '), tarih biçiminin –

+1

beklediğiniz gibi değil, doğru olarak hatırlattığından şüpheliyim. ] (http://php.net/manual/de/mysqli.real-escape-string.php) sorgunuzda kullanıyorsunuz! – jhinzmann

cevap

3

Aşağıdaki DB mysql.Try içine kaydetmeden önce biçimlendirmek için date() zaman damgası içine dönüştürmek için strtotime() kullanabilir ve:

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

Tam kodu olmalıdır:

<?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

Harika çalışıyor! Çok teşekkür ederim SQL için yeni ve tarihleri ​​nasıl saklandığından emin değildim! –

İlgili konular