southtel писал(а):Код: Выделить всё
<form metod="post" action="<?php echo $PHP_SELF?>">
Имя: <input type="Text" name="name"><br>
Фамилия: <input type="Text" name="familia"><br>
<input type="Submit" name ="submit" value="Ввод информации">
</form>
<?php
if (submit) {
$date=mysql_connect("localhost", "root");
mysql_select_db("tablica1",$date);
$zapis = "INSERT INTO test1(id, name, familia) VALUES (10, 'name','familia')";
$result=mysql_query($zapis);
}
mysql_close($date);?>
Я только начал изучать, можно сказать моя первая прога. Мне требуется в базу tablica1 c таблицей test1 записать вводимое имя и фамилию в форме. Итог этой проги в том, что она пишет слова name и family вместо содержимого переменных. И приходится вручную дописывать ID. Как это решить? Помогите.
Нужно вместо
Код: Выделить всё
$zapis = "INSERT INTO test1(id, name, familia) VALUES (10, 'name','familia')";
написать
Код: Выделить всё
$zapis = "INSERT INTO test1(`id`, `name`, `familia`) VALUES ('10', '$name','$familia')";
Но, перед этим, определить их, если register_globals = Off,
Код: Выделить всё
$name=$_POST['name'];
$familia=$_POST['familia'];
У тебя ещё ошибка тут:
<form metod="post" action="<?php echo $PHP_SELF?>">
metod нужно поменять на
method
Ещё, action="<?php echo $PHP_SELF?>" можно не писать, т.к. если его нет, он ему же и отправит.
Ещё,
заменить на
Код: Выделить всё
if (isset($_POST['submit'])&&!empty($_POST['submit'])) {
Ещё, вместо $result=mysql_query($zapis); можно писать просто mysql_query($zapis);
так как ты нигде $result потом не используешь.
На период обучения советую везде после mysql_coonect(), mysql_query(), добавлять or die(mysql_error())!
То есть, к примеру, твой запрос к БД из php будет выглядеть так: mysql_query($zapis) or die(mysql_error());
По поводу автоматической подстановки ID, в БД нужно полю id присвоить дополнительную опцию autoincrement, и в запросах ID не писать, то есть в твоём запросе будет не
Код: Выделить всё
$zapis = "INSERT INTO test1(`id`, `name`, `familia`) VALUES ('10', '$name','$familia')";
а
Код: Выделить всё
$zapis = "INSERT INTO test1 (`name`, `familia`) VALUES ('$name','$familia')";
или можно ещё так:
Код: Выделить всё
$zapis = "INSERT INTO test1 (`id`, `name`, `familia`) VALUES (NULL ,'$name','$familia')";
Ещё, желательно писать <?php ?> до вывода html.
В итоге твой код будет таким:
Код: Выделить всё
<?php
if (isset($_POST['submit'])&&!empty($_POST['submit'])) {
$name=$_POST['name']; //здесь так же обычно обрабатываются переменные.
$familia=$_POST['familia'];
$date=mysql_connect("localhost", "root") or die(mysql_error());
mysql_select_db("tablica1",$date) or die(mysql_error());
$zapis = "INSERT INTO test1 (`id`, `name`, `familia`) VALUES ('10', '$name','$familia')";
$result=mysql_query($zapis) or die(mysql_error());
mysql_close($date);
}
?>
<form method="POST">
Имя: <input type="text" name="name"><br>
Фамилия: <input type="text" name="familia"><br>
<input type="submit" name ="submit" value="Ввод информации">
</form>