Вставить в 2 таблицы с одной формой с 2 ​​SQL-операторов не работает - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь вставить в 2 таблицы сразу из одной формы.
таблица # 1 = bath_orders
таблица # 2 = клиенты
Я явно пытаюсь создать список электронной почты одновременно.

PHP пропускает первую команду INSERT INTO, переходит ко второй и продолжает выполнять оставшуюся часть кода на странице.

Я обнаружил несколько следующих ошибок при каждом выполнении вмой файл журнала ошибок:

Примечание PHP: Неопределенная переменная: on line

Я искал тему и обнаружил, что в большинстве случаев люди ошибочно пытались

$sql = "INSERT INTO bath_orders, customers ...." 

Но в моем коде дело обстоит иначе.
Мой код выглядит следующим образом:

<?php
$servername = "localhost";
$username = "my_user_name";
$password = "my_password";
$dbname = "my_database";

//  connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check 
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

if(isset($_POST['submit'])){


$fname = mysqli_real_escape_string($conn, $_POST['fname']);
$lname = mysqli_real_escape_string($conn, $_POST['lname']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$phone = mysqli_real_escape_string($conn, $_POST['phone']);
$custaddress = mysqli_real_escape_string($conn, $_POST['custaddress']);
$city = mysqli_real_escape_string($conn, $_POST['city']);
$state = mysqli_real_escape_string($conn, $_POST['state']);
$zip = mysqli_real_escape_string($conn, $_POST['zip']);
$pic1 = mysqli_real_escape_string($conn, $_POST['pic1']);
$pic2 = mysqli_real_escape_string($conn, $_POST['pic2']);
$pic3 = mysqli_real_escape_string($conn, $_POST['pic3']);
$startdate = mysqli_real_escape_string($conn, $_POST['startdate']);
$walltiledemo = mysqli_real_escape_string($conn, $_POST['walltiledemo']);
$walltile = mysqli_real_escape_string($conn, $_POST['walltile']);
$otherwalltile = mysqli_real_escape_string($conn, $_POST['otherwalltile']);
$otherwalltileh = mysqli_real_escape_string($conn, $_POST['otherwalltileh']);
$otherwalltilew = mysqli_real_escape_string($conn, $_POST['otherwalltilew']);
$walltileinst = mysqli_real_escape_string($conn, $_POST['walltileinst']);
$pandemo = mysqli_real_escape_string($conn, $_POST['pandemo']);
$paninst = mysqli_real_escape_string($conn, $_POST['paninst']);
$flrtileinst = mysqli_real_escape_string($conn, $_POST['flrtileinst']);
$flrtile = mysqli_real_escape_string($conn, $_POST['flrtile']);
$otherflrtile = mysqli_real_escape_string($conn, $_POST['otherflrtile']);
$tub = mysqli_real_escape_string($conn, $_POST['tub']);
$newtub = mysqli_real_escape_string($conn, $_POST['newtub']);
$othertub = mysqli_real_escape_string($conn, $_POST['othertub']);
$door = mysqli_real_escape_string($conn, $_POST['door']);
$newdoor = mysqli_real_escape_string($conn, $_POST['newdoor']);
$otherdoor = mysqli_real_escape_string($conn, $_POST['otherdoor']);
$floortiledemo = mysqli_real_escape_string($conn, $_POST['floortiledemo']);
$floortileinst = mysqli_real_escape_string($conn, $_POST['floortileinst']);
$floortile = mysqli_real_escape_string($conn, $_POST['floortile']);
$otherfloortile = mysqli_real_escape_string($conn, $_POST['otherfloortile']);
$otherfloortileh = mysqli_real_escape_string($conn, $_POST['otherfloortileh']);
$otherfloortilew = mysqli_real_escape_string($conn, $_POST['otherfloortilew']);
$vanity = mysqli_real_escape_string($conn, $_POST['vanity']);
$newvanity = mysqli_real_escape_string($conn, $_POST['newvanity']);
$othervanity = mysqli_real_escape_string($conn, $_POST['othervanity']);




$sql = "INSERT INTO bath_orders (firstname, lastname, email, phone , custaddress , city , state , zip , pic1 , pic2 , pic3 ,  startdate , walltiledemo , walltile , otherwalltile , otherwalltileh , otherwalltilew , walltileinst , pandemo , paninst , flrtileinst , flrtile , otherflrtile , tub , newtub , othertub , door , newdoor , otherdoor , floortiledemo , floortileinst , floortile , otherfloortile , otherfloortileh , otherfloortilew , vanity , newvanity , othervanity)
VALUES ('$fname', '$lname', '$email', '$phone', '$custaddress' , '$city' , '$state' , '$zip' , '$pic1' , '$pic2' , '$pic3' , '$startdate' , '$walltiledemo' , '$walltile' , '$otherwalltile' , '$otherwalltileh' , '$otherwalltilew' , '$walltileinst' , '$pandemo' , '$paninst' , '$flrtileinst' , '$flrtile' , '$otherflrtile' , '$tub'  , '$newtub' , '$othertub' , '$door' , '$newdoor' , '$otherdoor' , '$floortiledemo' , '$floortileinst' , '$floortile' , '$otherfloortile' , '$otherfloortileh' , '$otherfloortilew' , '$vanity' , '$newvanity' , '$othervanity' )";

$sql = "INSERT INTO customers (fname, lname, email, phone , custaddress , city , state , zip , comments )
VALUES ('$fname', '$lname', '$email', '$phone', '$custaddress' , '$city' , '$state' , '$zip' , '$comments')";

Я исследовал предмет, но .. Я не понимаю, что я делаю неправильно.
В нем говорится, что нужно выполнить 2 отдельных оператора INSERT INTO, и я думаю, что это то, что я делаю.
Может кто-нибудь помочь мне понять, как должны выглядеть 2 отдельных заявления.
TYIA

Вот ссылка на скрипку

https://jsfiddle.net/fiveonadub/836n4ycf/2/

Ответы [ 3 ]

0 голосов
/ 16 сентября 2018

Я не понимаю, как ваш php пропускает первую команду INSERT INTO и переходит ко второй. Вы нигде не использовали функцию mysqli_query (). Сохраните результаты этих 2 запросов в 2 разных переменных, а затем передайте эту переменную в качестве параметра в mysqli_query (). Тогда будет выполнен только ваш запрос.

-Спасибо,

0 голосов
/ 16 сентября 2018

Здесь есть две вещи, которые, похоже, идут не так, как надо.

Во-первых, просто присвоение SQL-переменной строки не заставляет ее выполнять sql на сервере, вам нужно вызватькакой-то метод или функция для этого.

Во-вторых, и я знаю это только потому, что я быстро скопировал / вставил ваш код в IDE, но переменная $ comments не определена.

0 голосов
/ 16 сентября 2018

Вам необходимо пользователю mysqli_query().Функция mysqli_query() выполняет выполнение запроса к базе данных.

Сохраняет первый запрос в $sql1, а второй в $sql2

mysqli_query($conn, $sql1); mysqli_query($conn, $sql2);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...