2014-09-11 2 views
-3

У меня есть форма, которая, как представляется, связана с базой данных mysql. Когда я вводим информацию в форму и отправляю ее, она регистрируется в базе данных как «0000-00-00», и данные возвращаются как «0000-00-00». Ни одна из фактических данных не появляется. Есть идеи?Как получить правильные данные при сохранении в базе данных mysql?

connection.php:

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = 'root'; 
$db = 'sm_residents'; 

$conn = mysql_connect($dbhost,$dbuser,$dbpass); 
mysql_select_db($db); 
?> 

create.php:

<?php 
include ('connection.php'); 

$FirstName= $_POST['inputFirstName']; 
$LastName= $_POST['inputLastName']; 
$Address= $_POST['inputAddress']; 
$Birthday= $_POST['inputBirthday']; 
$FormerResidence= $_POST['inputFormerResidence']; 
$Career= $_POST['inputCareer']; 
$Education= $_POST['inputEducation']; 
$SpecialInterests= $_POST['inputSpecialInterests']; 

if ($_FILES["file"]["error"] > 0) { 
} else { 
    if (file_exists("upload/" . $_FILES["file"]["name"])) { 
    } else { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
          "upload/" . $_FILES["file"]["name"]); 
    } 
} 

Picture= $_FILES["file"]["name"]; 

mysql_query("INSERT INTO residents    (`ID`,`FirstName`,`LastName`,`Address`,`Birthday`,`FormerResidence`,`Career`,`Education`,`SpecialInterests`,`Picture`) 
         VALUES(NULL,'$FirstName','$LastName','$Address','$Birthday','$FormerResidence','$Career','$Education','$SpecialInterests','$Picture')") or die(mysql_error()); 

?> 
<script> window.location = "index.php"; </script> 

Index.php:

<?php 
include ('connection.php'); 

if(isset($_POST['submit'])) { 
    echo "Please Fill Out The Form"; 
    //header ('Location: create.php'); 
} else { 
    //echo "User Has Been Added"; 
    //header('Location: create.php'); 
} 
?> 
<h1>Add A Resident</h1> 
    <form action="create.php" method="post" enctype="multipart/form-data"> 
<div class="form-group"> 
<label for="inputFirstName">First Name</label> 
<input type="text" class="form-control" id="inputFirstName" placeholder="First Name"> 
</div> 
<div class="form-group"> 
<label for="inputLastName">Last Name</label> 
<input type="text" class="form-control" id="inputLastName" placeholder="Last Name"> 
</div> 
<div class="form-group"> 
<label for="inputAddress">Address</label> 
<input type="text" class="form-control" id="inputAddress" placeholder="Address"> 
</div> 
<div class="form-group"> 
<label for="inputBirthday">Birthday</label> 
<input type="date" class="form-control" id="inputBirthday"> 
</div> 
<div class="form-group"> 
<label for="inputFormerResidence">Former Residence</label> 
<input type="text" class="form-control" id="inputFormerResidence" placeholder="Former  Residence"> 
</div> 
<div class="form-group"> 
<label for="inputCareer">Career</label> 
<input type="text" class="form-control" id="inputCareer" placeholder="Career"> 
</div> 
<div class="form-group"> 
<label for="inputEducation">Education</label> 
<input type="text" class="form-control" id="inputEducation" placeholder="Education"> 
</div> 
<div class="form-group"> 
<label for="inputSpecialInterests">Special Interests</label> 
<input type="text" class="form-control" id="inputSpecialInterests" placeholder="Special Interests"> 
</div> 
<div class="form-group"> 
<label for="inputFile">File input</label> 
<input type="file" id="inputFile"> 
</div> 
<button type="submit" class="btn btn-default">Submit</button> 
</form> 
+0

Каких переменный в коде вы работаете? – pareto

+2

Вам не хватает '$' перед 'Picture ='. Как это работает? – Barmar

+0

У вас нет элемента формы ввода с именем 'submit', поэтому я не знаю, как это работает даже если if (isset ($ _ POST ['submit'])) { echo« Пожалуйста, заполните форму »; не имеет смысла. Плюс это 'Picture = $ _FILES [" file "] [" name "];' это опечатка? Если нет, добавьте '' '' 'Picture' -' $ Picture = $ _FILES ["file"] ["name"]; '- Если ваши данные выходят как нули, проверьте тип столбца. –

ответ

6

Я сделаю этот ответ: (или BIG 90%/95% частичные в лучшем случае)

Ни фактических данных не обнаруживаются

Есть еще не все именованные элементы для входов, так что ничего не происходит, чтобы пройти, они все идентификаторы.

<input type="text" class="form-control" id="inputFirstName" placeholder="First Name"> 

, который следует читать

<input type="text" name="inputFirstName" class="form-control" id="inputFirstName" placeholder="First Name"> 
        ^^^^^^^^^^^^^^^^^^^^^ 

затем сделать то же самое для других, «называния» их, как я сделал выше.

PHP ищет именованные элементы, а не идентификаторы, на которые нельзя положиться.

Это также не имеет имени <input type="file" id="inputFile">

изменения в: <input type="file" name="file" id="inputFile">

согласно $_FILES["file"]


при размещении й е следующее под вашим отверстие <?php тега:

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

, который будет бросать много Undefined index предупреждений с настоящим кодексом.


Кроме того, как указывал Barmar in his comment, Вы пропускаете $ для Picture= $_FILES["file"]["name"];, если это не опечатка, следует читать как:

$Picture= $_FILES["file"]["name"]; 

В отношении к регистрирует в базе данных как «0000-00-00» убедитесь, что ваша колонка имеет правильный тип, чтобы разместить DATE.

+1

+1. MySQL ожидает, что строковые значения будут вставлены в столбцы datatpye DATE (DATETIME, TIMESTAMP) в формате «YYYY-MM-DD» или «YYYY-MM-DD HH: MI: SS''. Наилучший подход заключается в форматировании этих строковых значений в соответствующем формате в клиентском коде. Но если нам нужно предоставлять значения в другом формате, мы можем использовать функцию MySQL 'STR_TO_DATE' в списке значений, например. 'STR_TO_DATE ('9/10/2014', '% m /% d /% Y')' – spencer7593

+0

@ spencer7593 Спасибо. +1 на ваш комментарий, очень хорошо написано. –

1

Try форматирование первого Ваше рождение:

$Birthday = date("Y-m-d", strtotime($_POST['inputBirthday'])); 
+0

Это была комбинация необходимости назвать элементы и переформатировать дату рождения. Спасибо, что нашли время, чтобы прочитать мой мусорный код! Я все еще довольно новичок в этом. –

+0

Это приятно слышать @ChrisCarr. Мы все начинаем с нуля, и мы должны продолжать, чтобы расти в нашей выбранной области. Бог благословит вас и счастливое кодирование! – Edper

+0

@ChrisCarr Я полностью сбит с толку. Сначала вы принимаете мой ответ, затем этот. Как будто мой ответ ничего не значит. –

Смежные вопросы