Вставка нескольких строк с помощью PHP и MySQL - PullRequest
0 голосов
/ 23 ноября 2011

Я создаю веб-сайт, где люди могут размещать заказы, и это первый раз, когда мне приходится вставлять несколько строк одновременно, и я теряюсь.Я знаю, что мне нужен цикл FOR, чтобы выполнить это, но я потерял, как построить цикл.Я использую PHP, MySQL (очевидно) с jQuery.Я использую jQuery для .append () нового поля выбора в форме, чтобы позволить клиенту выбрать другой элемент.

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

<?php

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

    if (!$_POST['col1'] | !$_POST['col2'] | !$_POST['col3']) { die ("error"); }

    if (!get_magic_quotes_gpc()) {
        $_POST['col1'] = addslashes ($_POST['col1']);
        $_POST['col2'] = addslashes ($_POST['col2']);
        $_POST['col3'] = addslashes ($_POST['col3']);
    }

    $insert = "insert into table (col1, col2, col3) values ('".$_POST['col1']."', '".$_POST['col2']."', '".$_POST['col3']."')";
    mysql_query ($insert);

} else {
    ?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<table>
  <tr>
    <td><input type="text" name="col1"></td>
    <td><input type="text" name="col2"></td>
    <td><input type="text" name="col3"></td>

 //I'm using jQuery .append() to insert more text boxes with names (col1, col2, col3) here 

  </tr>
</table>
<input type="submit" name="submit" value="Submit">
</form>

    <?php
}
?>

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

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Убедитесь, что вы называете свои входные данные уникально. Но вы можете назвать каждый столбец следующим образом (см., Например, здесь ):

<input type="text" name="column1[]" />
<input type="text" name="column2[]" />
<input type="text" name="column3[]" />

Таким образом, вы можете получить доступ к столбцам через PHP, используя цикл for.

for($i = 0; $i < $n; $i++) // If you have $n rows
{
    echo($_POST["column1"][$i]);
    echo($_POST["column2"][$i]);
    echo($_POST["column3"][$i]);
}

Чтобы вставить несколько строк в базу данных MySQL, используйте следующий синтаксис (также: см. здесь ).

INSERT INTO
    tbl_name (column1, column2, column3)
VALUES
    (1,2,3),
    (4,5,6),
    (7,8,9);

Теперь вы должны настроить свой SQL-запрос.

0 голосов
/ 23 ноября 2011

Первое, чего вы хотите избежать, это использовать один и тот же набор имен.Возможно, вы захотите назвать их rowNcolM, а затем извлечь их там, где вы проверяете переменные записи.

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