Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/270: Рейтинг темы: голосов - 270, средняя оценка - 4.79
9 / 9 / 3
Регистрация: 17.11.2009
Сообщений: 51
1

[PHP+MySQL] Запись в базу данных из формы

25.05.2010, 03:24. Просмотров 53575. Ответов 11
Метки нет (Все метки)

Здравствуйте! Помогите, пожалуйста, решить проблему с записью. В базу строка добавляется, но она пустая. Не могу понять, в чем дело.

Вот код:
Код
//меню-добавить
elseif($menu==3)
{
  $query = "INSERT INTO sotrud (surname, name) VALUES ('".$_POST['surname']."','".$_POST['name']."')";
  $result = mysql_query($query) or die ("<p>ошибка запроса</p>");

print "
  <form method=\"POST\" action=\"index.php?id=".$id."&add\">
  <p>Фамилия:<input type='Text' name='surname'><br>
        Имя:<input type='Text' name='name'><br>
  <input type='text' name='data_priema' value='".date("Y-m-j")."' style='width: 100'>
  <input type='Submit' name='submit' value='Enter information'></p>
  </form>";
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2010, 03:24
Ответы с готовыми решениями:

Запись многомерного массива в базу данных MySQL в PHP
Доброго времени суток! Я новичок в программировании, и столкнулся с такой проблемой. У меня есть...

Запись значения в базу данных, PHP + MySQL
Здравствуйте. Система управления NetCat. Делаю каталог участников выставки. Пока идут...

PHP+MySQL не работает запись данных БД из формы
Возникла такая проблема. Имеется страница с формами. Введенные данные в формах должны записываться...

Php+mysql запись в базу
Привет дорогие друзья! Подскажите пожалуйста. Я только изучаю эти языки. Проблема в следующим. В...

11
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
25.05.2010, 08:39 2
ты сначала добавляешь пустую строку, а потом выводишь форму?
тебе надо написать условие о том что переменные не пусты
0
9 / 9 / 3
Регистрация: 17.11.2009
Сообщений: 51
25.05.2010, 12:09  [ТС] 3
Как это сделать? Помогите, пожалуйста! Я уже очень долго думаю над этим, но все безрезультатно
0
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
25.05.2010, 15:11 4
PHP
1
2
3
4
5
if ($_POST['surname']!="" and $_POST['name']!="") {
 
$query = "INSERT INTO `sotrud` (`surname`, `name`) VALUES ('".$_POST['surname']."','".$_POST['name']."')";
$result = mysql_query($query) or die ("<p>ошибка запроса</p>");
}
0
9 / 9 / 3
Регистрация: 17.11.2009
Сообщений: 51
25.05.2010, 15:38  [ТС] 5
PHP
1
2
3
4
5
6
7
8
$surname = 'nety_surname';
$name = 'nety_name';
if(isset($_POST['surname']))
        $surname = $_POST['surname'];
if(isset($_POST['name']))
        $name = $_POST['name'];
$query = "INSERT INTO sotrud (surname, name) VALUES ('$surname', '$name')";
$result = mysql_query($query);
я проверяла так, но не работает. Добавляет только тестовые 'nety_surname'; 'nety_name'; а из формы ничего не передает.
С вашим примером тоже не получилось. Как же быть..О_о

еще у меня в таблице, куда происходит добавление, есть поле sotrud_id (номер сотрудника). Оно заполняется автоинкрементом. Почему-то когда у меня добавлялась пробная запись 'nety_surname'; 'nety_name', то значение sotrud_id не увеличивалось, а становилось равным нулю.
Как решить эту проблему?
0
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
25.05.2010, 15:54 6
Выведите через echo содержимое $_Post['name'], может оно пустое?
Опубликуйте ваш скрипт целиком если проблема не в этом

добавления для поля автоинкрементного типа
PHP
1
2
$query = "INSERT INTO `sotrud` (`sotrud_id`,`surname`,`name`) values 
(NULL, '".$_POST['surname']."','".$_POST['name']."')";
0
9 / 9 / 3
Регистрация: 17.11.2009
Сообщений: 51
25.05.2010, 16:40  [ТС] 7
Код
//меню-добавить
elseif($menu==3)
{$surname = 'nety_surname';
$name = 'nety_name';
if(isset($_POST['surname']))
        $surname = $_POST['surname'];
if(isset($_POST['name']))
        $name = $_POST['name'];
$query = "INSERT INTO sotrud (surname, name) VALUES ('$surname', '$name')";
  $result = mysql_query($query) or die ("<p>ошибка запроса</p>");
 
print "
  <form method=\"POST\" action=\"index.php?id=".$id."&add\">
  <p>Фамилия:<input type='Text' name='surname'><br>
        Имя:<input type='Text' name='name'><br>
  <input type='text' name='data_priema' value='".date("Y-m-j")."' style='width: 100'>
  <input type='Submit' name='submit' value='Enter information'></p>
  </form>";
}
Весь скрипт выводить не буду, он достаточно объемный и не думаю, что кому-то захочется сильно в нем копаться. Выкладываю только фрагмент для добавления. Думаю, проблема все же где-то в этом месте.
Переменные пустые вроде.
В общем проблема в том, что из формы не передаются значения
0
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
25.05.2010, 17:07 8
Тогда объясняйте, получается, что у вас в одном и том же блоке выполняется запрос на добавление и вывод формы.
Когда вы первый раз выводите форму у вас выполняется запрос на добавление и возникает пустая запись. Ошибка это или нет не понятно из приведенного куска кода

Добавлено через 4 минуты
Цитата Сообщение от Attenti_ON Посмотреть сообщение
Код
if(isset($_POST['surname']))
        $surname = $_POST['surname'];
if(isset($_POST['name']))
        $name = $_POST['name'];
$query = "INSERT INTO sotrud (surname, name) VALUES ('$surname', '$name')";
 
}
какой смысл проверять на то, определены ли переменные $_POST['surname'] и $_POST['name'], если потом вы делаете запрос в независимости от того определены они или нет

Добавлено через 4 минуты
Замените Post на Get и посмотрите как формируется url
1
26 / 26 / 3
Регистрация: 03.04.2010
Сообщений: 206
26.05.2010, 17:51 9
Всё сказанное не совсем понятно , для чего?
PHP
1
2
3
4
5
if(isset($_POST['surname']))
        $surname = $_POST['surname'];
if(isset($_POST['name']))
        $name = $_POST['name'];
$query = "INSERT INTO sotrud (surname, name) VALUES ('$surname', '$name')";
Теперь разберём для чего?
PHP
1
2
3
4
5
6
7
if(isset($_POST['surname'])) $surname = $_POST['surname'];
/*здесь создаём простую переменную. */
 
/*потом если переменная пустая то мы её уничтожаем======>*/
if ($surname == ' ') { unset($surname);}
/*потому как даже пустая переменная  не заполненная будет передана 
как некое значение для этого надо её уничтожить чтоб не было записано поле пустым */
Далее будем записывать в базу поля НО==> проведём проверку на существование заполоненного поля
опять как пример

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (isset ( $surnam)&& isset ($name)
{
$query = "INSERT INTO sotrud (surname, name) VALUES ('$surname', '$name')";
 
  {if ($query == 'true') 
   {
     echo "<p>Вы внесли запись  </p> ";
   }
   else
   {
     echo "<p>Вы  не внесли запись  </p> ";
   }
 }
}
Что в результате если переменная будет пустая не будет выполнено условие ($query == 'true') и как результат перебросит на else echo "<p>Вы не внесли запись </p> ";
далее возможно прописать куда перебросит в случае не выполнения записи в базу.

и ещё когда приводите пример пожалста приводите нажимая на код PHP чтоб всё было читабельно
а то подиш разбери что вы там написали я так и сейчас не понял что к чему!
1
9 / 9 / 3
Регистрация: 17.11.2009
Сообщений: 51
26.05.2010, 20:40  [ТС] 10
Всем большое спасибо, вопрос решен
0
dibr62
06.04.2013, 18:38 11
Продолжаем тему
Собственно вот код , всё работает , но при открытии файла в базу уходят пустые поля , а потом уже правильные данные. Как исправить ? Понимаю что два action'#' не прокатывают , но в форме нужно считать, а потом отсылать в базу, а как сделать не понимаю .

И второй вопрос : в поле "умножить на" необходимо , чтобы можно было вставлять и десятичные числа (3.5) например, а в поле "Итого" можно округлять .
Пример 10кг*3.5= 35 , а не 30 или 40 , а если 1кг*3.5 = 4 — это нормально.
toFixed(1) пробовал , но не получилось (или не туда вставлял).

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
    <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
 
<form action="#" method="post">
  <table width="100" height="46" border="1">
    <tr>
        <th scope="col">nomer AWB<input type='text' name='AWB'></th>
        <th scope="col">клиент<input type='text' name='client'></th>
        <th scope="col">email<input type='text' name='e_mail'></th>
        <th scope="col">дата приемки<input type='text' name='datatime'></th>
        <th scope="col">бирки с<input type='text' name='birki_s'></th>
        <th scope="col">бирки по<input type='text' name='birki_po'></th>
        <th scope="col">кол мест<input type='text' name='kol_mest'></th>
        <th scope="col">вес<input name="ves" id="ves" type="text" onChange="summ()"></th>
        <th scope="col">итого<input name="itogo" id="itogo" type="text"></th>
        <th scope="col">плюс<input name='plus' id="plus" type='text' onChange="summ()"></th>
        <th scope="col">всего<input name='vsego' id="vsego" type='text'></th>
        <th scope="col">умножить на<input name="umnozit_na" id="umnozit_na" type="text" onChange="summ()"></th>
        <th scope="col">примечание<input type='text' name='primechanie'></th>
    </tr>
  </table>
</form>
 
<script>
function summ() {
var value1 = parseInt(document.getElementById("ves").value);
var value2 = parseInt(document.getElementById("umnozit_na").value);
var value3 = parseInt(document.getElementById("plus").value); 
document.getElementById("itogo").value = value1 * value2;
document.getElementById("vsego").value = value1 * value2 + value3;
}
</script>
 
<form action='#' method='POST'>
 <?php
$host = "localhost";
$user = "root";
$password = "";
$db = "mydatabasaaccess";
if (!$conn = mysql_connect($host, $user, $password))
{
echo "<h2>MySQL Error!</h2>";
exit;
}
$AWB = $_POST['AWB'];
$client = $_POST['client'];
$e_mail= $_POST['e_mail']; 
$datatime= $_POST['datatime'];
$birki_s= $_POST['birki_s'];
$birki_po= $_POST['birki_po'];
$kol_mest= $_POST['kol_mest'];
$ves= $_POST['ves'];
$itogo= $_POST['itogo'];
$plus= $_POST['plus'];
$vsego= $_POST['vsego'];
$umnozit_na= $_POST['umnozit_na'];
$primechanie= $_POST['primechanie'];
 
mysql_select_db($db);
 
$result = mysql_query("INSERT INTO `mydatabasaaccess`.`otchet` (AWB, client, e_mail, datatime, birki_s, birki_po, kol_mest, ves, itogo, plus, vsego, umnozit_na, primechanie) VALUES('$AWB', '$client', '$e_mail', '$datatime', '$birki_s', '$birki_po', '$kol_mest', '$ves', '$itogo', '$plus', '$vsego','$umnozit_na', '$primechanie')");
 
if ($result=='true') 
{$result_add =1;}
else{$result_add =2;}
 
?>
<script>
function makeReset(){
fr = document.forms[0];
 
fr.submit();
fr.reset();
}
</script>
 
<input class=gbbutton type=button value="Занести в базу" onClick="makeReset()">
</body>
</html>
0 / 0 / 1
Регистрация: 05.03.2013
Сообщений: 15
06.04.2013, 20:04 12
Новую тему создавать не стал, проблема подобная

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
                $sql = "SELECT id, group_name
                        FROM `group`";
                $result = mysql_query($sql) or die(mysql_error());
                while ($myrow_group = mysql_fetch_assoc($result)){
 
                    print <<<HERE
                        <form class="search_p" action="update_info.php" method="post">
                            Группа: <input value="$myrow_group[group_name]" name="group_name" type="text">
                                    $myrow_group[id]
                            <input name="sub_prof" type="submit" value="Изменить">
                        </form>
HERE;
                }
PHP
1
2
3
4
5
6
7
8
9
10
if (isset ($_POST['group_name'])){
    $group_name= $_POST['group_name'];
}
if (isset ($_POST['id'])){
    $group_id= $_POST['id'];
}
 
$result42 = mysql_query("UPDATE `group` 
                        SET group_name='$group_name'
                        WHERE id=$group_id");
Выводит следующую ошибку "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 ", как я понял он не получает group_id, в чем мб проблема? 1 раз данные в базе обновить получилось.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2013, 20:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Запись изображения из формы в базу mysql
Мне нужно сделать загрузку изображения с формы в базу данных. Вывод изображения из базы работает))...

Ajax отправка данных из формы в базу mysql и вывод из базы mysql
$(function() { $('#chat_submit').click(function(e) { e.preventDefault(); ...

Php+ajax передаю данные формы в базу mysql
От сюда $(function() { $('#chat_submit').click(function(e) { ...

Запись в базу данных MYSQL
Здравствуйте проблема возникла в том что при записи в таблицу то там вместо текста появляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.