Зацикливание оператора SQL на бритве

Попытка создать «корзину», в которой хранятся выбранные пользователем элементы, но после заполнения формы все данные из «корзины» вставляются в одну строку.

Пример:

OrderID     StockID
Or002       IT01,IT02,IT03

Как разделить данные на строку каждый?

Предполагаемый результат:

OrderID     StockID
Or002       IT01
Or002       IT02
Or002       IT03

Как это работает:

  1. Пользователь нажмет кнопку, которая сгенерирует следующие коды HTML.

(Джаваскрипт)

var cartRowContents = `
    <a class = "dec" id = "dec">-</a>
    <input class = "quan-num" id = "number" name = "FQty" value = "1"/>
    <a class = "inc" id = "inc">+</a>
    <input type = "hidden" id = "FID" name = "FID" value=${id} />
    <div class  = "rem">REMOVE ITEM</div>`;

Вход с именем FID содержит переданное значение идентификатора элемента, выбранного пользователем; Сгенерированный HTML-код будет вставлен в форму/корзину. Пользователь не может добавить один и тот же элемент, но может изменить количество (значение <input name = "FQty"> ) с помощью <a id = "dec"> and <a id = "inc">.

  1. Когда пользователь завершит свой заказ, будут запущены следующие коды

(С#)

@functions{

public static String insD(Database db, String query) {

    IEnumerable<dynamic>  data;

    data = db.Query(query); //Executing the Query

       return query;

    }

}

(веб-страницы ASP.NET)

@{

 Database db = Database.Open("geh");

 String m_OrderID = "Or002";

 if (IsPost) {  //if statement when form is submitted

        string FID = Request.Form["FID"];
        var Qty = Request.Form["FQty"];

        String query = "INSERT INTO gah.order VALUES ('" + m_OrderID + "','" + FID + "','" + Qty + "')";

        insD(db, query);

}

Что я пробовал:

(веб-страницы ASP.NET)

@{

if (IsPost) {
      Database db = Database.Open("geh");
      String m_OrderID = "Or002";

           for(int i = 0; i < 2 ; i++){

                var FID = Request.Form["FID"][i];

                var Qty = Request.Form["FQty"][i];

                String query = "INSERT INTO gah.orders VALUES ('" + m_OrderID + "','" + FID + "', '" + Qty + "')";

                insD(db, query);
       }
   }
}

Приводит к вставке первого символа идентификатора.

Пример:

ID = "DE002"

OrderID      StockID

Or002        D

Database Info:

OrderID(PK) varchar(10),
StockID(PK) varchar(10),
Qty int()

Не повезло, значения, разделенные запятыми, - такой беспорядок. Никогда не храните данные таким образом, это вызовет много неприятностей.

jarlh 23.04.2019 11:38

Да, потратил пару часов, пытаясь понять, как их разделить.

Yrgus 23.04.2019 11:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я правильно понимаю, ваша корзина будет иметь несколько полей как <input name=FID>, так и <input name=FQty>, так что при публикации формы Request.Form["FID"] и Request.Form["FQty"] будут списками, разделенными запятыми? Если это так, возможно, что-то вроде этого поможет:

var FID = Request.Form["FID"].Split(',');
var FQTY = Request.Form["FQty"].Split(',');

for(int i = 0; i < FID.Length; ++i)
{
    String query = "INSERT INTO gah.orders VALUES ('" + m_OrderID + "','" + FID[i] + "', '" + FQTY[i] + "')";

    insD(db, query);
}

Это немного сложно понять только с кодом, которым вы поделились, но дайте мне знать, если я на правильном пути.

Гудман, это сделало это для меня. Я благодарю вас за вашу помощь. Я часами ломал голову, так как я новичок в веб-программировании. Ваше здоровье!

Yrgus 23.04.2019 17:35

Другие вопросы по теме