Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 03.11.2017
Сообщений: 53

Заполнение базы данных через PHP

12.05.2020, 10:31. Показов 2489. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, друзья. Прошу помощи, пожалуйста.
Есть БД "Больничная регистратура", туда нужно организовать регистрацию пациентов, докторов, запись на приём и вывод карточек пациентов.
Столкнулся с проблемой на начальном этапе выполнения "Регистрация пациентов", т.е занесение человека в базу.
Есть формочка в которой есть поля "имя", "фамилия", "отчество", "номер телефона", "адрес", "дата рождения". Через эту формочку с помощью PHP хочу организовать ввод данных в БД. Помогите, пожалуйста. Делаю на Open Server, php 7.1, БД делал через phpmyadmin
Содержание формочки:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form action = "connect.php" method="POST"> <!-- ВОТ ТУТ НУЖНО ОБРАБОТЧИК -->
<fieldset>
<legend>Контактная информация</legend>
    Имя: <input type="text" style="width: 200px; height: 25px;" name="firstname" placeholder="Введите имя"><br><br>
    Фамилия:  <input type="text" style="width: 200px; height: 25px;" name="secondname" placeholder="Введите фамилию"><br><br>
    Отчество:  <input type="text" style="width: 200px; height: 25px;" name="thirdname" placeholder="Введите отчество"><br><br>
    Номер телефона:  <input type="text" style="width: 200px; height: 25px;" name="phone" placeholder="Введите номер телефона"><br><br>
    Адрес проживания:  <input type="text" style="width: 200px; height: 25px;" name="adress" placeholder="Введите адрес"><br><br>
    Дата рождения:  <input type="date" style="width: 200px; height: 25px;" name="data" placeholder="Введите дату рождения"><br><br>
</fieldset>
     <br><br>
     <input type="submit" name="submit" value="Подтвердить">
     <input type="reset" name="reset" value="Очистить">
</form>
Содеражание PHP документа с соединением-обработчиком:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$connect = new mysqli("localhost", "root", "root", "hospital" ); //Подключаемся к БД Хост, Имя пользователя MySQL, его пароль, имя нашей базы
$connect->query("SET NAMES 'utf8' "); //Кодировка данных получаемых из базы
$sysMessages = "Нет системных сообщений";
function addUser($firstname, $secondname, $thirdname, $phone, $adress, $data)//Функция добавления пациентов
{
    $add = $connect->query("INSERT INTO пациенты (id, firstname, secondname, thirdname, phone, adress, data) VALUES  (NULL, '$firstname', '$secondname', '$thirdname', '$phone', '$adress', '$data')");
    if($add){$GLOBALS['sysMessages'] = "Добавлен новый пользователь"; } else{ $GLOBALS['sysMessages'] = "Ошибка добавления";}
    
    if($_POST['add'])
{
    $firstname = $_POST['firstname'];
    $secondname = $_POST['secondname'];
    $thirdname = $_POST['thirdname'];
    $phone = $_POST['phone'];
    $adress = $_POST['adress'];
    $data = $_POST['data'];
    addUser($firstname, $secondname, $thirdname, $phone, $adress, $data);
}
echo "<p style='color: darkgreen; font-size: 18px;'>".$sysMessages."</p>" ;
    
}
?>
p.s код PHP нашёл в интернете и переделал под себя...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2020, 10:31
Ответы с готовыми решениями:

Вывод таблицы базы данных MySQL через PHP
Всем доброго времени суток. Я пытался вывести таблицу из базы данных Денвера в браузер, результат получился как на скрине. Хотя этот код я...

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

Заполнение элемента формы значениями из базы данных через PHP
Здравствуйте! Помогите пожалуйста правильно организовать заполнение элемента формы select типа &quot;combobox&quot; значениями из поля...

7
81 / 49 / 34
Регистрация: 22.05.2018
Сообщений: 192
12.05.2020, 11:02
Здравствуйте, Morsis!
Имя таблицы возьмите в кавычки, вот в такие ``. Далее переменные в SQL-строке должны быть введены либо через подготовленный запрос (вот ссылка на документацию) либо через оператор конкатенации (точка). В этом случае Вам нужно подчистить данные, полученные из формы (враг не дремлет)
PHP
1
2
$sql = "INSERT INTO `пациенты` (id, firstname, secondname, thirdname, phone, adress, data) 
        VALUES  (NULL, '".$firstname."', '".$secondname."', '".$thirdname."', '".$phone."', '".$adress."', '".$data."')";
1
1 / 1 / 0
Регистрация: 03.11.2017
Сообщений: 53
12.05.2020, 12:27  [ТС]
Вставил ваш код - не добавляет всё равно. Не понимаю, что нужно сделать...
0
81 / 49 / 34
Регистрация: 22.05.2018
Сообщений: 192
12.05.2020, 12:50
А Вы функцию вызывали или запускали код как есть. Функция вызывается так:
PHP
1
addUser($firstname, $secondname, $thirdname, $phone, $adress, $data);
, где $firstname, $secondname, $thirdname, $phone, $adress, $data - аргументы функции, значения в которые передаются соответствующими переменными.
0
1 / 1 / 0
Регистрация: 03.11.2017
Сообщений: 53
12.05.2020, 13:15  [ТС]
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
<?php
$connect = new mysqli("localhost", "root", "root", "hospital" ); //Подключаемся к БД Хост, Имя пользователя MySQL, его пароль, имя нашей базы
$connect->query("SET NAMES 'utf8' "); //Кодировка данных получаемых из базы
$sysMessages = "Нет системных сообщений";
function addUser($firstname, $secondname, $thirdname, $phone, $adress, $data)//Функция добавления пациентов
{
    $sql = "INSERT INTO `пациенты` (id, firstname, secondname, thirdname, phone, adress, data) 
        VALUES  (NULL, '".$firstname."', '".$secondname."', '".$thirdname."', '".$phone."', '".$adress."', '".$data."')";
    if($add){$GLOBALS['sysMessages'] = "Добавлен новый пользователь"; } else{ $GLOBALS['sysMessages'] = "Ошибка добавления";}
 
    if($_POST['add'])
{
    $firstname = $_POST['firstname'];
    $secondname = $_POST['secondname'];
    $thirdname = $_POST['thirdname'];
    $phone = $_POST['phone'];
    $adress = $_POST['adress'];
    $data = $_POST['data'];
    addUser($firstname, $secondname, $thirdname, $phone, $adress, $data);
}
echo "<p style='color: darkgreen; font-size: 18px;'>".$sysMessages."</p>" ;
 
}
?>
Код выглядит так
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
12.05.2020, 14:31
как минимум, условие if вынести из функции.
в функцию передать $connect
добавить в функции $connect->query($sql);
0
81 / 49 / 34
Регистрация: 22.05.2018
Сообщений: 192
12.05.2020, 14:49
Лучший ответ Сообщение было отмечено Morsis как решение

Решение

Вот, сделал для примера. Возможно есть ляпы. На работоспособность не проверял. Здесь главное алгоритм действий.
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
$connect = new mysqli("localhost", "root", "root", "hospital" ); //Подключаемся к БД Хост, Имя пользователя MySQL, его пароль, имя нашей базы
$connect->query("SET NAMES 'utf8' "); //Кодировка данных получаемых из базы
$sysMessages = '';
 
 
if (!empty($_POPST['form']) && $_POPST['form'] == 'patient_reg') {
    //Очистить данные, введенные пользователем в форму
    $firstname   = sanitizeValue($_POPST['firstname'])  ?? '';
    $secondname  = sanitizeValue($_POPST['secondname']) ?? '';
    $thirdname   = sanitizeValue($_POPST['thirdname'])  ?? '';
    $phone       = sanitizeValue($_POPST['phone'])      ?? '';
    $adress      = sanitizeValue($_POPST['adress'])     ?? '';
    $data        = sanitizeValue($_POPST['data'])       ?? '';
 
    //Проверить на заполняемость полей
    if (empty($firstname)  ||
        empty($secondname) ||
        empty($thirdname)  ||
        empty($phone)      ||
        empty($adress)     ||
        empty($data)          ) {
 
        $error_message = 'Заполните все поля таблицы!!!';//Вывести сообщение, если какие-то поля не заполнены
    //Если поля заполнены, записать данные в базу
    } elseif (!empty($firstname)  &&
              !empty($secondname) &&
              !empty($thirdname)  &&
              !empty($phone)      &&
              !empty($adress)     &&
              !empty($data)          ) {
 
        $sql = "INSERT INTO `пациенты` 
                (id, firstname, secondname, thirdname, phone, adress, data) 
                VALUES  (NULL, '".$firstname."', '".$secondname."', '".$thirdname."', '".$phone."', '".$adress."', '".$data."')";
 
        try {
 
            //Если запрос удался, вывести сообщение об удачном запросе
            $connect->query($sql);
 
            $sysMessages = 'Ваша заявка принята!!!';
        
        } catch (PDOException $e) {
 
            //Если запрос не удался, вывести сообщение об ошибке и сохраняем ошибку для анализа
            $error = $e->getMessage();
 
            $sysMessages = 'Что-то пошло не так! Попробуйте еще раз.');
 
        }        
    }
}
 
/*ФУНКЦИЯ ОЧИСТКИ ДАННЫХ*/
function sanitizeValue($value = "") {
    $value = trim($value);
    $value = stripslashes($value);
    $value = strip_tags($value);
    $value = htmlspecialchars($value);
    
    return $value;
}
?>
 
 
<form action = "" method="POST"> <!-- ВОТ ТУТ НУЖНО ОБРАБОТЧИК -->
<p style='color: darkgreen; font-size: 18px;'><?= $sysMessages ?? ''; ?></p>
<fieldset>
<legend>Контактная информация</legend>
    Имя: <input type="text" 
                style="width: 200px; height: 25px;" 
                name="firstname" 
                placeholder="Введите имя"
                value="<?= $firstname ?? ''; ?>"><br><br>
 
    Фамилия:  <input type="text" 
                     style="width: 200px; height: 25px;" 
                     name="secondname" 
                     placeholder="Введите фамилию"
                     value="<?= $secondname ?? ''; ?>"><br><br>
 
    Отчество:  <input type="text" 
                      style="width: 200px; height: 25px;" 
                      name="thirdname" 
                      placeholder="Введите отчество"
                      value="<?= $thirdname ?? ''; ?>"><br><br>
 
    Номер телефона:  <input type="text" 
                            style="width: 200px; height: 25px;" 
                            name="phone" 
                            placeholder="Введите номер телефона"
                            value="<?= $phone ?? ''; ?>"><br><br>
 
    Адрес проживания:  <input type="text" 
                              style="width: 200px; height: 25px;" 
                              name="adress" 
                              placeholder="Введите адрес"
                              value="<?= $adress ?? ''; ?>"><br><br>
 
    Дата рождения:  <input type="date" 
                           style="width: 200px; height: 25px;" 
                           name="data" 
                           placeholder="Введите дату рождения"
                           value="<?= $data ?? ''; ?>"><br><br>
</fieldset>
     <br><br>
     <input type="hidden" name="form" value="patient_reg">
     <input type="submit" name="submit" value="Подтвердить">
     <input type="reset" name="reset" value="Очистить">
</form>
Добавлено через 12 минут
Исправил косяки. Работает с БД.

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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
 
$connect = new mysqli("localhost", "root", "", "hospital" ); //Подключаемся к БД Хост, Имя пользователя MySQL, его пароль, имя нашей базы
$connect->query("SET NAMES 'utf8' "); //Кодировка данных получаемых из базы
$sysMessages = '';
 
 
if (!empty($_POST['form']) && $_POST['form'] == 'patient_reg') {
    //Очистить данные, введенные пользователем в форму
    $firstname   = sanitizeValue($_POST['firstname'])  ?? '';
    $secondname  = sanitizeValue($_POST['secondname']) ?? '';
    $thirdname   = sanitizeValue($_POST['thirdname'])  ?? '';
    $phone       = sanitizeValue($_POST['phone'])      ?? '';
    $adress      = sanitizeValue($_POST['adress'])     ?? '';
    $data        = sanitizeValue($_POST['data'])       ?? '';
 
    //Проверить на заполняемость полей
    if (empty($firstname)  ||
        empty($secondname) ||
        empty($thirdname)  ||
        empty($phone)      ||
        empty($adress)     ||
        empty($data)          ) {
 
        $error_message = 'Заполните все поля таблицы!!!';//Вывести сообщение, если какие-то поля не заполнены
    //Если поля заполнены, записать данные в базу
    } elseif (!empty($firstname)  &&
              !empty($secondname) &&
              !empty($thirdname)  &&
              !empty($phone)      &&
              !empty($adress)     &&
              !empty($data)          ) {
 
        $sql = "INSERT INTO `пациенты` 
                (id, firstname, secondname, thirdname, phone, adress, data) 
                VALUES  (NULL, '".$firstname."', '".$secondname."', '".$thirdname."', '".$phone."', '".$adress."', '".$data."')";
 
        try {
 
            //Если запрос удался, вывести сообщение об удачном запросе
            $connect->query($sql);
 
            $sysMessages = 'Ваша заявка принята!!!';
        
        } catch (PDOException $e) {
 
            //Если запрос не удался, вывести сообщение об ошибке и сохраняем ошибку для анализа
            $error = $e->getMessage();
 
            $sysMessages = 'Что-то пошло не так! Попробуйте еще раз.';
 
        }        
    }
}
 
/*ФУНКЦИЯ ОЧИСТКИ ДАННЫХ*/
function sanitizeValue($value = "") {
    $value = trim($value);
    $value = stripslashes($value);
    $value = strip_tags($value);
    $value = htmlspecialchars($value);
    
    return $value;
}
?>
 
 
<form action = "" method="POST"> <!-- ВОТ ТУТ НУЖНО ОБРАБОТЧИК -->
<p style='color: darkgreen; font-size: 18px;'><?= $sysMessages ?? ''; ?></p>
<fieldset>
<legend>Контактная информация</legend>
    Имя: <input type="text" 
                style="width: 200px; height: 25px;" 
                name="firstname" 
                placeholder="Введите имя"
                value="<?= $firstname ?? ''; ?>"><br><br>
 
    Фамилия:  <input type="text" 
                     style="width: 200px; height: 25px;" 
                     name="secondname" 
                     placeholder="Введите фамилию"
                     value="<?= $secondname ?? ''; ?>"><br><br>
 
    Отчество:  <input type="text" 
                      style="width: 200px; height: 25px;" 
                      name="thirdname" 
                      placeholder="Введите отчество"
                      value="<?= $thirdname ?? ''; ?>"><br><br>
 
    Номер телефона:  <input type="text" 
                            style="width: 200px; height: 25px;" 
                            name="phone" 
                            placeholder="Введите номер телефона"
                            value="<?= $phone ?? ''; ?>"><br><br>
 
    Адрес проживания:  <input type="text" 
                              style="width: 200px; height: 25px;" 
                              name="adress" 
                              placeholder="Введите адрес"
                              value="<?= $adress ?? ''; ?>"><br><br>
 
    Дата рождения:  <input type="date" 
                           style="width: 200px; height: 25px;" 
                           name="data" 
                           placeholder="Введите дату рождения"
                           value="<?= $data ?? ''; ?>"><br><br>
</fieldset>
     <br><br>
     <input type="hidden" name="form" value="patient_reg">
     <input type="submit" name="submit" value="Подтвердить">
     <input type="reset" name="reset" value="Очистить">
</form>
1
1 / 1 / 0
Регистрация: 03.11.2017
Сообщений: 53
12.05.2020, 15:12  [ТС]
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2020, 15:12
Помогаю со студенческими работами здесь

Статьи через php и базы данных
Всем привет. Я вот посмотрел на сайтах и увидел, что менюшки ссылаются на такие вот ссылки: ...

Создание Бэкапа базы данных через php
Здравствуйте :) Есть скрипт создания бэкапа $name=date('d-m-Y'); exec('mysqldump -uroot -p Plan &gt; /dump/'.$name.'.sql'); echo...

Запрос к атрибутам базы данных через PHP
Доброго времени суток,не могу разобраться в чем дело, а начну с того что есть база данных(если ее можно так назвать)в phpmyadin-e которая...

Изменение базы данных mysql через php
Бойцы, вообщем пытаюсь изменить бд, через условную админ панель, сделал кнопки и тд. Кнопка удаления к слову пашет прекрасно, а вот...

Добавление данных в таблицы базы через php страницу
Есть база данных, как через сайт сделать заполнение таблиц таким образом, чтобы в, например, дроп дауне выбирать столбец необходимой...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru