Форма для добавления данных в таблицу MySQL - PullRequest
0 голосов
/ 02 августа 2011

Я использую:

*connection details*

$fname = stripslashes($_POST['fname']);
$surname = stripslashes($_POST['surname']);
$address = stripslashes($_POST['address']);

$sql = "INSERT INTO mytable (id, fname, surname, address)
VALUES ('', '$fname', '$surname', '$address')";
$results = mysql_query($sql);

if ($results)
{
echo "Details added.";
}

проблема в том, что запись добавлена ​​в таблицу, но вместо данных из формы все данные пустые?

Форма:

<form id="myform" action="add.php" method="post" name="myform">
<label for="fname">First Name</label> 
<input id="fname" name="fname" ><br />
<label for="surname">Surname</label> 
<input id="surname" name="surname" ><br />
<label for="address">Address</label> 
<input id="address" name="address" >
<input type="submit" name="submitButtonName" value="Add">

Ответы [ 4 ]

2 голосов
/ 02 августа 2011

Вы должны опубликовать свой HTML-код тоже. Убедитесь, что метод формы POST:

<form method="POST" action="process.php">
   <input type="text" name="fname" />
   <input type="text" name="surname" />
   <input type="text" name="address" />
</form>

Также должны быть правильно установлены атрибуты имени ваших элементов <input />. Если все это сделано, вы сможете получить переменные $_POST на странице process.php. Таким образом:

$fname = stripslashes($_POST['fname']);

Проверьте, имеют ли ваши переменные значение, выполнив простой echo $fname;. Если они установлены, возможной причиной сбоя системы может быть ваш SQL-запрос. Оставьте id и просто сделайте:

$sql = "INSERT INTO mytable (firstname, surname, address)
        VALUES ('" . $fname . "', '" . $surname . "', '" . $address . "')";
$result = mysql_query($sql);
1 голос
/ 02 августа 2011

Вы должны попробовать распечатать эти переменные для отладки.

echo $fname = stripslashes($_POST['fname']);
echo $surname = stripslashes($_POST['surname']);
echo $address = stripslashes($_POST['address']);

И вы увидите данные переменных.

0 голосов
/ 02 августа 2011

Если поле id в таблице базы данных автоматически увеличивается, то нет необходимости помещать это в запрос MySQL, попробуйте это

    $sql = "INSERT INTO mytable (fname, surname, address)
            VALUES ('$fname', '$surname', '$address')";
0 голосов
/ 02 августа 2011

Я бы предположил, что это что-то маленькое, например, не задано значение "name" для ваших полей.Если у вас не установлено «имя», то данные поста не будут содержать никаких деталей.Если проблема не в этом, пожалуйста, опубликуйте свой код, и я смогу увидеть, заметил ли я что-нибудь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...