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

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

12.12.2013, 08:01. Показов 2778. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
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 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru