У меня есть форма, которая предоставляет пользователю возможность отправлять сообщения в пределах 1 из 3 столбцов. Если пользователь решает, что они хотят публиковать в первом столбце, то они нажимают кнопку столбца 1, а мой сценарий jquery удаляет остальные 2 поля ввода.
Проблема в том, что каждый из этих столбцов связан с собственной таблицей в базе данных, поэтому каждый раз, когда пользователь вводит информацию в один из столбцов, ее отправляют на целевую страницу, где он обновляет все 3 таблицы.
Если пользователь, которому нужно выбрать столбец 1, то их информация будет вставлена в таблицу столбца 1, но пустые строки также будут вставлены в таблицы 2 и 3.
<?php $con=mysqli_connect("URL", "DB", "password","DB_Name"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } // escape variables for security $Main= mysqli_real_escape_string($con, $_POST['Column_1']); $storyn1 = mysqli_real_escape_string($con, $_POST['storyn1']); $sql="INSERT INTO Column_1 (Link1, storyn1) VALUES ('$Main', '$storyn1')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } mysqli_close($con); $con=mysqli_connect("URL", "DB", "password","DB_Name"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } // escape variables for security $MLB= mysqli_real_escape_string($con, $_POST['MLB']); $storyn2 = mysqli_real_escape_string($con, $_POST['storyn2']); $sql="INSERT INTO Column_2 (Link, storyn2) VALUES ('$MLB', '$storyn2')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } mysqli_close($con); $con=mysqli_connect("URL", "DB", "password","DB_Name");; // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } // escape variables for security $Column_3= mysqli_real_escape_string($con, $_POST['Column_3']); $storyn3 = mysqli_real_escape_string($con, $_POST['storyn3']); $sql="INSERT INTO Column_3 (Link3, storyn3) VALUES ('$Column_3', '$storyn3')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } mysqli_close($con); ?>
Я чувствую, что я получаю пустые строки, вставленные в мою таблицу, потому что эта страница содержит код вставки для всех трех таблиц. Для чего лучше всего? Нужно ли иметь 3 отдельных целевых страницы для размещения этих кодов ввода?
Вот обновленный код из приведенных ниже предложений:
// escape variables for security $Main= mysqli_real_escape_string($con, $_POST['Column_1']); $storyn1 = mysqli_real_escape_string($con, $_POST['storyn1']); $MLB= mysqli_real_escape_string($con, $_POST['MLB']); $storyn2 = mysqli_real_escape_string($con, $_POST['storyn2']); $Column_3= mysqli_real_escape_string($con, $_POST['Column_3']); $storyn3 = mysqli_real_escape_string($con, $_POST['storyn3']); if(!empty($_POST['Column_1']) && !empty($_POST['storyn1'])) { $sql="INSERT INTO Column_1 (Link1, storyn1) VALUES ('$Main', '$storyn1')"; } if(!empty($_POST['MLB']) && !empty($_POST['storyn2'])) { $sql="INSERT INTO Column_2 (Link, storyn2) VALUES ('$MLB', '$storyn2')"; } if(!empty($_POST['Link3']) && !empty($_POST['storyn3'])) { $sql="INSERT INTO Column_3 (Link3, storyn3) VALUES ('$Column_3', '$storyn3')"; } ?>