Как вставить записи в разные таблицы с одной страницы? - PullRequest
1 голос
/ 28 марта 2012

У меня есть 4 таблицы с именами wheels, tires, oil_change, other_servicing.

Теперь у меня есть форма заказа для человека, который приезжает на техосмотр автомобиля.Я хочу, чтобы все эти 4 варианта в форме.Скажем, кто-то приходит за новыми колесами, но не за шинами, заменой масла и другим обслуживанием, а остальные поля оставят пустыми.И тогда у вас может быть сценарий, где все четыре поля заполнены.Так как мне отправить каждую в соответствующие таблицы из этой формы?

Ответы [ 5 ]

3 голосов
/ 28 марта 2012

Форма будет отправлена ​​в один PHP-скрипт.В php вы должны выполнить 4 отдельных запроса, чтобы поместить данные в правильные таблицы.Например, если у вас есть это в php:

$wheels = $_REQUEST['wheels'];
$tires  = $_REQUEST['tires'];
$oil_ch = $_REQUEST['oil_change'];
$other  = $_REQUEST['other_servicing'];

mysql_query("INSERT INTO wheels (wheels) VALUES $wheels");
mysql_query("INSERT INTO tires (tires) VALUES $tires");
mysql_query("INSERT INTO oil_change (oil_change) VALUES $oil_ch");
mysql_query("INSERT INTO other_servicing (other_servicing) VALUES $other");

Конечно, я не знаю схемы ваших таблиц, но это всего лишь пример того, как вы должны разделить его на 4 запроса.

Тем не менее, я бы посоветовал вам вместо четырех таблиц иметь только одну таблицу и вместо этого сделать каждую из них столбцом.Могут быть и другие детали, о которых я не знаю, для которых потребуются отдельные таблицы, но с предоставленной вами информацией кажется, что это будет проще.

2 голосов
/ 28 марта 2012

Это не должно представлять никаких проблем.Страница PHP, которая получает данные формы, может выполнить столько запросов, сколько вы хотите.Скелет для кода будет что-то вроде:

if($_POST['wheels']) { //if they filled in the field for wheels...
    mysql_query("insert into wheels...");
}
if($_POST['tires']) { //if they filled in the field for tires...
    mysql_query("insert into tires...");
}
if($_POST['oil_change']) { //if they filled in the field for oil_change...
    mysql_query("insert into oil_change...");
}
... etc
1 голос
/ 28 марта 2012

Это может быть полезно

if(isset($_POST['submit'])) // assuming you have submit button with name 'submit'
{
    $fields['wheels'] = isset($_POST['wheels']) ? $_POST['wheels'] : null;
    $fields['tires']  = isset($_POST['tires']) ? $_POST['tires'] : null;
    $fields['oil_change'] = isset($_POST['oil_change']) ? $_POST['oil_change'] : null;
    $fields['other_servicing']  = isset($_POST['other_servicing']) ? $_POST['other_servicing'] : null;
    $q="";
    foreach($fieldsas $key=>$val)
    {
        if($val!==null)
        {
            $q="insert into ".$key." values('".mysql_real_escape_string($val)."')";
            mysql_query($q);
        }

    }
    if($q==="") echo " Please fill up at least one field !";
}

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

1 голос
/ 28 марта 2012

В действии формы вы укажете php-файл, который будет обрабатывать форму.

В файле сценария php вы будете проверять, какие части форм используются и вставлены в соответствующую таблицу.

Попробуйте разделить тесты и вставки каждой таблицы, чтобы вам было легче.

1 голос
/ 28 марта 2012

для каждой формы у вас будет что-то вроде этого:

    if($_POST['wheels']){mysql_query("INSERT INTO wheel_table (column1) VALUES (" . 'mysql_real_escape_string($_POST['wheels']) . "')")

это проверяет, установлен ли элемент формы или имеет значение, и если это так, создает новую строку в соответствующей таблице.

если имя элемента формы не «колеса», у вас будет изменение $_POST['wheels'] на $_POST['form_element_name'], а если имя таблицы не wheel_table, вам придется изменить это и то же самое с именем столбца.

это все должно быть завернуто в

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