Nano Hash - криптовалюты, майнинг, программирование

Вставка нескольких строк с помощью PHP и MySQL

Я создаю веб-сайт, на котором люди могут размещать заказы, и это первый раз, когда мне приходится вставлять несколько строк одновременно, и я теряюсь. Я знаю, что для этого мне нужен цикл 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, но я никогда не мог заставить его работать. Еще раз спасибо за любую помощь.

22.11.2011

  • Обязательно проверьте наличие уязвимостей SQL-инъекций. 23.11.2011
  • Мне интересно, вы заметили раздел «Связанные» на этой странице, полный похожих вопросов, заданных сотнями других людей ранее? 23.11.2011

Ответы:


1

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

<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-запроса.

23.11.2011
  • Потрясающий! Спасибо, это именно то, что я пытался сделать. 23.11.2011
  • Если это помогло вам, пожалуйста, проголосуйте и примите это как ответ. 24.11.2011

  • 2

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

    22.11.2011
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..