Итак, у меня есть form1, которая содержит информацию из нескольких таблиц в базе данных. У меня есть списки и текстовые поля в этой форме, которые содержат эту информацию. Поэтому все, что я пытаюсь сделать, это вставить любую информацию, которую пользователь отправляет обратно, в базу данных и вывести ее в форму form2. У меня есть INSERT INTO на странице вывода. Я знаю, что вы не можете использовать один запрос INSERT INTO, поэтому мне было интересно, как использовать несколько INSERTS и отправить эту информацию обратно в базу данных.
Переменные, созданные ниже, взяты с предыдущей страницы, и все значения там.
if (isset($_POST['n_submit'])){
$oid = $_POST['oid'];
$odate = $_POST['odate'];
$ostatus = $_POST['ostatus'];
$cfname = $_POST['cfname'];
$cname = $_POST['clname'];
$efname = $_POST['efname'];
$elname = $_POST['elname'];
echo "New record created successfully";
$db = mysqli_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password') or die ("I cannot connect to the database because: ".mysqli_connect_error());
$query = "select status_id from ostatus where status_type = '$ostatus'";
$result = mysqli_query($db, $query) or die("Error in SQL statement:" .mysqli_error());
$row = mysqli_fetch_array($result);
$statusid = $row[0];
$query1 = "insert into cust ('c_fname', 'c_lname') values ('$cfname', $clname)";
$result1 = mysqli_query($db, $query1) or die("Error in SQL statement:" .mysqli_error());$query2 = "insert into employed ('e_fname', e_lname) values ('$efname', '$elname')";
$result2 = mysqli_query($db, $query1) or die("Error in SQL statement:" .mysqli_error());$query3 ="INSERT INTO sorder (o_id, o_date, s_id) VALUES ('{$oid}', '{$odate}', '{$statusid}')";
$result3 = mysqli_query($db, $query3);
}
Прежде всего, ваш запрос уязвим для внедрения SQL. Я не собираюсь это исправлять.
Во-вторых, вы должны Google, как правильно обрабатывать формы. И вам следует рассмотреть возможность запуска транзакции SQL, если вы действительно заботитесь о том, чтобы данные наверняка попали во все таблицы.
В-третьих, вы должны иметь возможность использовать несколько вставок, как вы делаете в своем коде. но вам нужно исправить синтаксические ошибки.
Попробуйте этот код (я также удалил выбранный код на основе вашего вопроса, он не нужен)
if (isset($_POST['n_submit'])){
$oid = $_POST['oid'];
$odate = $_POST['odate'];
$ostatus = $_POST['ostatus'];
$cfname = $_POST['cfname'];
$cname = $_POST['clname'];
$efname = $_POST['efname'];
$elname = $_POST['elname'];
$db = mysqli_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password') or die ("I cannot connect to the database because: ".mysqli_connect_error());$query1 = "insert into cust (c_fname, c_lname) values ('".$cfname."', '".$clname."')";
$result1 = mysqli_query($db, $query1) or die("Error in SQL statement:" .mysqli_error());$query2 = "insert into employed (e_fname, e_lname) values ('".$efname."', '".$elname."')";
$result2 = mysqli_query($db, $query2) or die("Error in SQL statement:" .mysqli_error());$query3 ="INSERT INTO sorder (o_id, o_date, s_id) VALUES ('".$oid."', '".$odate."', '".$statusid."')";
$result3 = mysqli_query($db, $query3);
if($result1 && $result2 && $result3)
echo 'New record created successfully';
else
echo 'something did not work';
}
Других решений пока нет …