С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
2 / 2 / 1
Регистрация: 19.09.2012
Сообщений: 106

Добавление информации в таблицу БД через веб интерфейс

12.12.2013, 08:01. Показов 2780. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане, пишу я дабы беда
У меня имеется БД (наименование stud), и таблица (с наименование тоже stud).
В ней 5 столбцов.
1. idstud
2. family
3. name
4. otchestvo
5. group
Пароль пустой, учетка root. (По default)
имеется формочка куда я вписываю id студента, имя, фамилию, отчество и группу. И по нажатию на кнопку меня перекидывает на mytest.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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<html><body>
 
<table width=100% height=100%>
<tr>
 
<a href="index.php"><input type="button" value="Студенты"></a>
<a href="addstud.php"><input type="button" value="Добавление студента"></a>
<a href="predmet.php"><input type="button" value="Список предметов"></a>
<form method="post" action="mytest.php">
   <br/>
   id Студента: <input type="text" name="name"><br/>
   Фамилия:       <input type="text" name="name"><br/>
    Имя:   <input type="text" name="nickname"><br/>
    Отчество:        <input type="text" name="age"><br/>
    Группа:     <input type="text" name="email"><br/>
    <input type="submit" value="Отправить">
</form>
<td align=center>
<h2 align=center>Студент успешно добавлен в Базу данных<br/>В разработке</h2>
<?php
 $connect = mysql_connect('localhost','root') or die('Подключение к базе данных не возможно <b><u>'.mysql_error()."</b></u>");
   mysql_select_db('stud',$connect) or die('Подключение к базе данных не возможно <b><u>'.mysql_error()."</b></u>");
   mysql_query('SET NAMES UTF8',$connect) or die('SET NAMES UTF8 failed');  
// Проверка чтоб POST не был пустым
if($_POST){
// Так вынес чтоб удобнее было читать +меньше гемора с экранацией
        $idstud = $_POST['idstud'];
        $family = $_POST['family'];
        $name = $_POST['name'];
        $otchestvo = $_POST['otchestvo'];
        $group = $_POST['group'];
// А вот и собака откопаная, в VALUE нада было кавычки поставить :)
    mysql_query("INSERT INTO user(full_name, nickname)
    VALUE('".$idstud."','".$family."','".$name."','".$otchestvo."','".$group."')");
    }
 
?>
</td></tr>
</table>
 
</body></html>
В данном примере мы добавляем нового студента в базу данных, но никаких ошибок подключения к БД мне не сообщается и просто показывает как будто все выполнено, но на самом деле ничего не добавляет в БД, прошу помощи, может где-нибудь в синтаксисе ошибся?((( Прошу помощи! Трубы уж больно горят(((
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2013, 08:01
Ответы с готовыми решениями:

Добавление информации в таблицу
Здравствуйте, есть таблица на сайте(на Bootstrap) в которую нужно добавить информацию о авторах (4 атрибута: Имя, Фамилия, Отчество и Дата...

Работа с 1С через веб интерфейс
Доброго всем времени суток! сейчас рабоаю как пользователь. Заинтересовал меня такой момент в работе с 1С: нужно организовать...

Не открываются аттачменты через веб-интерфейс
Добрый день! Появилась проблема такая. Аттачменты вроде архива rar или вордового файла не открываюся через web-интерефейс, аттачмент...

11
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
12.12.2013, 08:07
Проблема здесь:
PHP
1
2
mysql_query("INSERT INTO user(full_name, nickname)
    VALUE('".$idstud."','".$family."','".$name."','".$otchestvo."','".$group."')");
Посчитайте сколько полей указано, а сколько данных вы пытаетесь занести....2 как то не равно 5 как минимум. Кроме того поля и данные должны соответствовать по типу.
0
2 / 2 / 1
Регистрация: 19.09.2012
Сообщений: 106
12.12.2013, 08:10  [ТС]
idstud и group тип integer, а остальное Varchar. А где указывается что два поля всего мне дается? Поясните, пожалуйста, яснее, я только учусь. Мне хочется и вправду научиться, вы мне очень поможете если разжуёте
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.12.2013, 08:16
Цитата Сообщение от Eliceyka Посмотреть сообщение
А где указывается что два поля всего мне дается?
здесь:
Цитата Сообщение от solar_wind Посмотреть сообщение
INSERT INTO user(full_name, nickname)
Добавлено через 47 секунд
Работа с БД MySQL
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
12.12.2013, 08:16
(full_name, nickname) - это перечисляются поля, в которые заносить данные
VALUE('".$idstud."','".$family."','".$na me."','".$otchestvo. "','".$group."')" - это перечисляются сами данные для занесения.
Когда PHP соединит все строки, то часть запроса в VALUE будет выглядеть так:
VALUE('342','иванов','иван','иванович',' группа1')
И это передастся в СУБД.
СУБД попытается строку '342' (а так как она в кавычках, то это именно как строка будет воспринято) поместить в поле full_name.....потом 'иванов' пойдет в поле nickname . Нужно ли говорить что данных полей в вашей таблице вообще нет? Зачем они в запросе? А остальные данные вообще некуда девать, но и первых двух ошибок достаточно что бы запрос не выполнился.
Не поленитесь, почитайте как правильно писать запросы типа INSERT
1
2 / 2 / 1
Регистрация: 19.09.2012
Сообщений: 106
12.12.2013, 08:19  [ТС]
solar_wind, Спасибо за пояснение, поменял, но итог тот же.
PHP
1
2
3
4
5
6
7
8
9
10
if($_POST){
        $idstud = $_POST['idstud'];
        $family = $_POST['family'];
        $name = $_POST['name'];
        $otchestvo = $_POST['otchestvo'];
        $group = $_POST['group'];
 
    mysql_query("INSERT INTO user(idstud, family, name, otchestvo, group)
    VALUE('".$idstud."','".$family."','".$name."','".$otchestvo."','".$group."')");
    }
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
12.12.2013, 08:21
Eliceyka, Кавычки вокруг id студента и группы уберите, у вас же тип integer там!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.12.2013, 08:24
Цитата Сообщение от Eliceyka Посмотреть сообщение
if($_POST)
это условие всегда истинно.
Цитата Сообщение от Eliceyka Посмотреть сообщение
mysql_query
добавьте вывод ошибок. Но вообще, скорее всего, все из-за ключевого слова group.
PHP
1
2
mysql_query("INSERT INTO `user` (`idstud`, `family`, `name`, `otchestvo`, `group`)
    VALUE('".$idstud."','".$family."','".$name."','".$otchestvo."','".$group."')");
Если все равно не получится - добавьте код
PHP
1
or die(mysql_error())
перед точкой с запятой

Добавлено через 23 секунды

Не по теме:

solar_wind, это мелочь, мускул даже предупреждение не выплюнет.

1
2 / 2 / 1
Регистрация: 19.09.2012
Сообщений: 106
12.12.2013, 15:08  [ТС]
Ребята! Всё поменял по вашим рекомендациям) И даже проверку сделал и вроде бы всё хорошо, но всё-равно не добавляет!((((
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
<html><body>
 
<table width=100% height=100%>
<tr>
 
<a href="index.php"><input type="button" value="Студенты"></a>
<a href="addstud.php"><input type="button" value="Добавление студента"></a>
<a href="predmet.php"><input type="button" value="Список предметов"></a>
<form method="post" action="mytest.php">
   <br/>
   id Студента: <input type="text" name="idstud"><br/>
   Фамилия:       <input type="text" name="family"><br/>
    Имя:   <input type="text" name="name"><br/>
    Отчество:        <input type="text" name="otchestvo"><br/>
    Группа:     <input type="text" name="group"><br/>
    <input type="submit" value="Отправить">
</form>
<td align=center>
<h2 align=center>Студент успешно добавлен в Базу данных<br/>В разработке</h2>
<?php
 $connect = mysql_connect('localhost','root') or die('Подключение к базе данных не возможно <b><u>'.mysql_error()."</b></u>");
   mysql_select_db('stud',$connect) or die('Подключение к базе данных не возможно <b><u>'.mysql_error()."</b></u>");
   mysql_query('SET NAMES UTF8',$connect) or die('SET NAMES UTF8 failed');  
// Проверка чтоб POST не был пустым
if($_POST){
        $idstud = $_POST['idstud'];
        $family = $_POST['family'];
        $name = $_POST['name'];
        $otchestvo = $_POST['otchestvo'];
        $group = $_POST['group'];
 
    mysql_query("INSERT INTO stud(idstud, family, name, otchestvo, group)
    VALUE($idstud,'".$family."','".$name."','".$otchestvo."',$group)").mysql_error()."</b></u>";
    echo ("INSERT INTO stud(idstud, family, name, otchestvo, group)
    VALUE($idstud,'".$family."','".$name."','".$otchestvo."',$group)");
    var_dump ($_POST);
    }
 
?>
</td></tr>
</table>
 
</body></html>
При проверке, которую я сделал таким образом, чтобы знать какие значения принимает....
PHP
1
2
3
4
echo ("INSERT INTO stud(idstud, family, name, otchestvo, group)
    VALUE($idstud,'".$family."','".$name."','".$otchestvo."',$group)");
    var_dump ($_POST);
    }
А в итоге выдаёт: "INSERT INTO stud(idstud, family, name, otchestvo, group) VALUE(3,'Hudjakova','Valentina','Igorevn a',1)array(5) { ["idstud"]=> string(1) "3" ["family"]=> string(9) "Hudjakova" ["name"]=> string(9) "Valentina" ["otchestvo"]=> string(8) "Igorevna" ["group"]=> string(1) "1" }"
А значит, что все значения полученны верно, но почему не добавляет?(((( Может Idstud ключ и поэтому нельзя добавить туда? или как?....HELP
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
12.12.2013, 15:13
Eliceyka, переборщил с удалениями.... сделай так:
PHP
1
2
mysql_query("INSERT INTO stud(`idstud`, `family`, `name`, `otchestvo`, `group`)
    VALUE(".$idstud.",'".$family."','".$name."','".$otchestvo."',".$group.")");
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.12.2013, 19:30
Цитата Сообщение от Eliceyka Посмотреть сообщение
Всё поменял по вашим рекомендациям)
Разве?
Цитата Сообщение от KOPOJI Посмотреть сообщение
Но вообще, скорее всего, все из-за ключевого слова group.
PHP
1
2
mysql_query("INSERT INTO `user` (`idstud`, `family`, `name`, `otchestvo`, `group`)
 * *VALUE('".$idstud."','".$family."','".$name."','".$otchestvo."','".$group."')");
Обратите внимание на различия в запросах. Косые апострофы ставили?
Дальше я написал добавить вывод ошибок, написал, как он должен быть и куда его вставить. При подключении, выборе БД и кодировки вы написали правильно (хотя оно там и не особо нужно), а там, где надо было поставить, вы, зачем-то, сконкатенировали выведенную ошибку с функцией выполнения запроса, причем, не выводя все это, а просто "в никуда". Конечно, вы не увидите никаких ошибок - вы не сделали ни первого, ни второго пункта из того, что я написал

Добавлено через 51 секунду
Цитата Сообщение от Eliceyka Посмотреть сообщение
но почему не добавляет?
перечитайте внимательнее сообщения выше
1
2 / 2 / 1
Регистрация: 19.09.2012
Сообщений: 106
13.12.2013, 11:10  [ТС]
solar_wind, ОГРОМНЕЙШЕЕ СПАСИБО!!!! Ты автоматически в рай попадаешь)))) Будешь в Комсомольске-на-Амуре, пиши в личку, приму, встречу в общем Спасибо десятикратное !)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2013, 11:10
Помогаю со студенческими работами здесь

Добавление информации из txtbox и datetimepicker в таблицу БД
есть форма с texbox и datatimepicker , нужно заполнив поля нажать на кнопку и что бы в БД занеслась инфа string query = &quot;INSERT...

Добавление информации в таблицу, используя 2 другие
Итак: имеется база данных в ацессе. Связь с ней в делфи осуществляется с помощью ado connection, ado table, datasource. имеется 2...

Простой скрипт: логин через веб-интерфейс
Здравствуйте умные люди. Прошу помощи в следующей проблеме. Постараюсь кратко. Итак есть роутер на который я захожу по ip логинюсь...

Не могу войти в роутер через веб интерфейс
Появилась следующая проблема, решил зайти в меню да изменить пароль, но не тут то было. По адресу 192.168.1.1 не могу войти в его меню,...

AS-sam3X. Зажечь светодиод через веб-интерфейс
Здравствуйте. Нужно зажечь и потушить светодиод на плате AS-sam3X через веб-интерфейс, подключив плату к компу через Ethernet. Нашёл...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru