Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
pisalka30
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
1

Добавление записей в базу с использованием select

01.04.2016, 23:06. Просмотров 1078. Ответов 13
Метки нет (Все метки)

Здравствуйте. У меня такая проблема, что я не могу реализовать код PHP для добавления в базу данных информации.
Есть форма.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form method="post" action="add-auto.php">
Марка авто: <select name="mark">
<option>AC Cars</option>
<option>Acura</option>
<option>Alfa_Romeo</option>
<option>Aston Martin</option>
...
</select>
Модель: <input type="text" name="model" /><br />
Год: <input type="text" name="god" /><br /><hr />
Тип кузова: <input type="text" name="cuzovtype" /><br />
Количество мест: <input type="text" name="kolmest" /><br />
Количество дверей: <input type="text" name="koldver" /><br />
Длина, мм: <input type="text" name="dlina" /><br />
<input style="position: relative; left: 80%;" type="submit" name="add" value="Добавить" />
</form>
В базе есть таблицы. каждая таблица - это название марки авто. Я хочу, чтобы при выборе в <select> марки, дальше заполненная информация добавлялась именно таблицу соответствующую выбором марки авто в <select>, после нажатия кнопки. Помогите пожалуйста. Мучаюсь 2 дня уже. Никак не могу условие сделать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2016, 23:06
Ответы с готовыми решениями:

простая база с одним полем (оно же ключ), но много записей. как максимально быстро организовать проверку и добавление пакета новых записей?
есть простейшая БД (с одним полем), состоящая из уникальных строковых ключей, ...

Select не записывается в базу данных
Есть 4 таблицы в БД: type, location, users, moving. Нужно сделать выборку из...

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

Выпадающий список (select) из всех записей таблицы
товарищи, пытаюсь сделать выпадающий список (select) из записей таблицы...

добавление инфы из БД в список select
Добрый день, тут вот должно добавлять данные из БД в список &lt;select&gt; чтоб...

13
Виталюска
475 / 463 / 229
Регистрация: 26.09.2010
Сообщений: 2,360
01.04.2016, 23:15 2
Лучший ответ Сообщение было отмечено pisalka30 как решение

Решение

PHP
1
2
3
if (isset($_POST['add'])) {
$sql = "INSERT INTO '".$_POST['mark']."' (`value1`, `value2`, ....) VALUES ('".$_POST['model']."','".$_POST['godl']."', ...)";
}
1
pisalka30
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
01.04.2016, 23:21  [ТС] 3
Нет. Вы не поняли. У меня много таблиц. Мне с помощью select нужно выбрать в какую таблицу добавлять данные.
0
Виталюска
475 / 463 / 229
Регистрация: 26.09.2010
Сообщений: 2,360
02.04.2016, 10:10 4
Цитата Сообщение от pisalka30 Посмотреть сообщение
Нет. Вы не поняли. У меня много таблиц.
Это Вы не понимаете что я Вам написал, из селекта выбираем название таблици которое передается через
Цитата Сообщение от Виталюска Посмотреть сообщение
$_POST['mark']
а дальше уже вставляем остальные значения
Цитата Сообщение от pisalka30 Посмотреть сообщение
Мне с помощью select нужно выбрать в какую таблицу добавлять данные.
как передать в запрос имя таблицы я написал
или у Вас трудности с выводом названий таблиц из БД?
0
fanatikus
1108 / 1094 / 515
Регистрация: 17.11.2012
Сообщений: 4,836
02.04.2016, 17:36 5
Цитата Сообщение от pisalka30 Посмотреть сообщение
<option>Acura</option>
а где значение?
HTML5
1
<option value='acura'>Acura</option>
0
pisalka30
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
02.04.2016, 22:30  [ТС] 6
Форма
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form method="post" action="add-auto.php">
Марка авто: <select name="mark">
<option value="ac cars">AC Cars</option>
<option value="acura">Acura</option>
<option value="alfa romeo">Alfa_Romeo</option>
<option value="aston martin">Aston Martin</option>
...
</select>
Модель: <input type="text" name="model" /><br />
Год: <input type="text" name="god" /><br /><hr />
Тип кузова: <input type="text" name="cuzovtype" /><br />
Количество мест: <input type="text" name="kolmest" /><br />
Количество дверей: <input type="text" name="koldver" /><br />
Длина, мм: <input type="text" name="dlina" /><br />
<input style="position: relative; left: 80%;" type="submit" name="add" 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
                        $link = mysqli_connect("localhost", "root", "root", "diplom_auto");
                        if (mysqli_connect_errno()) {
                            echo "Не подключились!";
                        }
                        mysqli_select_db($link, "diplom_auto");
 
                            if(isset($_POST["add"])){ 
                                if (empty($_POST['mark']) or empty($_POST['model']) or empty($_POST['god']) or empty($_POST['cuzovtype']) or empty($_POST['kolmest']) or empty($_POST['koldver']) or empty($_POST['dlina']) or empty($_POST['wirina']) or empty($_POST['visota']) or empty($_POST['typedvig']) or empty($_POST['obdvig']) or empty($_POST['moshnost']) or empty($_POST['krutmoment']) or empty($_POST['dvigsite']) or empty($_POST['typetop']) or empty($_POST['rashod']) or empty($_POST['klapan']) or empty($_POST['privod']) or empty($_POST['maxspeed']) or empty($_POST['razgon']))
                                { 
                                    ?> <div class="newsaddno">Не заполнены ячейки</div> <?php
                                }
                                else {
                                    $model = $_POST['model'];
                                    $god = $_POST['god'];
                                    $cuzovtype = $_POST['cuzovtype'];
                                    $kolmest = $_POST['kolmest'];
                                    $koldver = $_POST['koldver'];
                                    $dlina = $_POST['dlina'];
                                    $wirina = $_POST['wirina'];
                                    $visota = $_POST['visota'];
                                    $typedvig = $_POST['typedvig'];
                                    $obdvig = $_POST['obdvig'];
                                    $moshnost = $_POST['moshnost'];
                                    $krutmoment = $_POST['krutmoment'];
                                    $dvigsite = $_POST['dvigsite'];
                                    $typetop = $_POST['typetop'];
                                    $rashod = $_POST['rashod'];
                                    $klapan = $_POST['klapan'];
                                    $privod = $_POST['privod'];
                                    $maxspeed = $_POST['maxspeed'];
                                    $razgon = $_POST['razgon'];
 
                                    $insert_sql = "INSERT INTO '".$_POST['mark']."' (model, god, cuzovtype, kolmest, koldver, dlina, wirina, visota, typedvig, obdvig, moshnost, krutmoment, dvigsite, typetop, rashod, klapan, privod, maxspeed, razgon)" .
                                                  "VALUES('{$model}' , '{$god}', '{$cuzovtype}', '{$kolmest}', '{$koldver}', '{$dlina}', '{$wirina}', '{$visota}', '{$typedvig}', '{$obdvig}', '{$moshnost}', '{$krutmoment}', '{$dvigsite}', '{$typetop}', '{$rashod}', '{$klapan}', '{$privod}', '{$maxspeed}', '{$razgon}' );";
                                    mysqli_query($link, $insert_sql);
                                    ?>  <div class="newsaddyes">Новость успешно добавлена</div> <?php
                                    header ('Location: ../admin.php');  
                                    exit(); 
                                }
                            }
                    ?>
пишет такую ошибку: Warning: Cannot modify header information - headers already sent by (output started at C:\Apache24\htdocs\diplom\cms\pagescms\add-auto.php:117) in C:\Apache24\htdocs\diplom\cms\pagescms\add-auto.php on line 154

не могу понять как исправить. когда комментирую header то ошибки нет, но в базу не добавляет. Помогите пожалуйста
0
fanatikus
1108 / 1094 / 515
Регистрация: 17.11.2012
Сообщений: 4,836
02.04.2016, 22:48 7
Цитата Сообщение от pisalka30 Посмотреть сообщение
value="alfa romeo">
у вас что, название таблицы из 2 слов с пробелом?
0
Виталюска
475 / 463 / 229
Регистрация: 26.09.2010
Сообщений: 2,360
03.04.2016, 09:36 8
Цитата Сообщение от pisalka30 Посмотреть сообщение
пишет такую ошибку: Warning: Cannot modify header information - headers already sent by (output started at C:\Apache24\htdocs\diplom\cms\pagescms\add-auto.php:117) in C:\Apache24\htdocs\diplom\cms\pagescms\add-auto.php on line 154
у Вас до вызова header есть вывод какого либо символа поэтому и ошибка, да и обратите на то что спросил fanatikus,
0
fanatikus
1108 / 1094 / 515
Регистрация: 17.11.2012
Сообщений: 4,836
03.04.2016, 11:12 9
Цитата Сообщение от Виталюска Посмотреть сообщение
у Вас до вызова header есть вывод какого либо символа
конечно есть. потому как в запросе ошибка(выводится ошибка). а ошибка из за - смотри мое сообщение выше
0
Виталюска
475 / 463 / 229
Регистрация: 26.09.2010
Сообщений: 2,360
03.04.2016, 11:18 10
fanatikus, я это понимаю, это надо понить pisalka30,
0
fanatikus
1108 / 1094 / 515
Регистрация: 17.11.2012
Сообщений: 4,836
03.04.2016, 11:21 11
Цитата Сообщение от Виталюска Посмотреть сообщение
это надо понить pisalka30,
я для него и написал.
0
pisalka30
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
05.04.2016, 15:36  [ТС] 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
                                    $marka = $_POST['marka'];
                                    $mark = $_POST['mark'];
                                    $model = $_POST['model'];
                                    $god = $_POST['god'];
                                    $cuzovtype = $_POST['cuzovtype'];
                                    $kolmest = $_POST['kolmest'];
                                    $koldver = $_POST['koldver'];
                                    $dlina = $_POST['dlina'];
                                    $wirina = $_POST['wirina'];
                                    $visota = $_POST['visota'];
                                    $typedvig = $_POST['typedvig'];
                                    $obdvig = $_POST['obdvig'];
                                    $moshnost = $_POST['moshnost'];
                                    $krutmoment = $_POST['krutmoment'];
                                    $dvigsite = $_POST['dvigsite'];
                                    $typetop = $_POST['typetop'];
                                    $rashod = $_POST['rashod'];
                                    $klapan = $_POST['klapan'];
                                    $privod = $_POST['privod'];
                                    $maxspeed = $_POST['maxspeed'];
                                    $razgon = $_POST['razgon'];
                                    $insert_sql = "INSERT INTO '{$marka}' (mark, model, god, cuzovtype, kolmest, koldver, dlina, wirina, visota, typedvig, obdvig, moshnost, krutmoment, dvigsite, typetop, rashod, klapan, privod, maxspeed, razgon)
                                                  VALUES ('{$mark}' , '{$model}' , '{$god}', '{$cuzovtype}', '{$kolmest}', '{$koldver}', '{$dlina}', '{$wirina}', '{$visota}', '{$typedvig}', '{$obdvig}', '{$moshnost}', '{$krutmoment}', '{$dvigsite}', '{$typetop}', '{$rashod}', '{$klapan}', '{$privod}', '{$maxspeed}', '{$razgon}' );";
                                    mysqli_query($link, $insert_sql);
                                    ?> <div class="newsaddyes">Новость успешно добавлена</div><?php
                                    header ('Location: ../admin.php');
Часть кода PHP. Выводится ошибка. Не понимаю почему. убирал <div> - использовал echo. Снова так же было.. Не понимаю. Читал, что перед <?php и ?> не должно быть пробелов. Проверял - ничего нет.

А название из 2 слов с пробелом я исправил.
0
fanatikus
1108 / 1094 / 515
Регистрация: 17.11.2012
Сообщений: 4,836
05.04.2016, 15:58 13
Лучший ответ Сообщение было отмечено pisalka30 как решение

Решение

Цитата Сообщение от pisalka30 Посмотреть сообщение
Читал, что перед <?php и ?> не должно быть пробелов.
и кодировка документа utf-8 без bom
и проверьте, успешно ли выполнен запрос
PHP
1
2
3
4
if(! mysqli_query($link, $insert_sql))
{
    echo(mysqli_error($link));
}
1
pisalka30
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
05.04.2016, 22:57  [ТС] 14
Спасибо большое! без вас бы я не справился!
0
05.04.2016, 22:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2016, 22:57

добавлением записей в базу данных
Создал программу которая должна до давать записи в базу из HTML - формы. В базе...

Добавление данных из таблицы в тег select
Вместо данных, в селект погружается название столбца таблицы подскажите в чем...

Добавление\Вывод значний из select,option,radio
Подскажите. Вот у меня имеется такая html-структура(скрин ниже). Я собираю...


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

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

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