Я понимаю, что это может быть повторяющийся вопрос, но я не могу найти правильный ответ.
Я пытаюсь вставить несколько строк в таблицу MySQL, но на данный момент, все, что я делаю, это вставляю одни и те же данные несколько раз.
Таблица называется tblRoomsBooked, а поля имеют значения bookingNumber, roomID, roomRate
и depositRate
. У таблицы есть собственный уникальный первичный ключ roomBookedID
, который автоматически увеличивается.
У нас есть форма HTML для бронирования номеров, которые мы нанимаем. Есть четыре комнаты, которые можно арендовать в любой комбинации. В каждом номере есть свой ID, стоимость аренды и требуемая сумма депозита. Так, например, если одна комната была забронирована с депозитом, должна быть вставлена одна запись, состоящая из номера бронирования, идентификатора комнаты, стоимости комнаты и ее депозита. Если нужно было арендовать три комнаты, необходимо вставить три отдельные записи, каждая запись будет содержать идентификатор комнаты, стоимость комнаты и залог за каждую забронированную комнату, но все комнаты, забронированные за один раз, будут иметь одинаковый номер бронирования.
Код SQL:
$bookingNumber = ($_POST['bookingNumber']);
$roomID = ($_POST['roomID']);
$roomRate = ($_POST['roomRate']);
$depositRate = ($_POST['depositRate']);
$RoomsBooked = "INSERT INTO tblRoomsBooked (bookingNumber, roomID, roomRate, depositRate) VALUES ('$bookingNumber', '$roomID', '$roomRate', '$depositRate')";
Если я использую $ RoomsBooked = "INSERT INTO tblRoomsBooked (bookingNumber, roomID, roomRate, depositRate) VALUES ('$bookingNumber', '$roomID', '$roomRate', '$depositRate'), ('$bookingNumber', '$roomID', '$roomRate', '$depositRate'). ('$bookingNumber', '$roomID', '$roomRate', '$depositRate'), ('$bookingNumber', '$roomID', '$roomRate', '$depositRate')";
, как я читал в другом месте здесь, он просто создает четыре строки с одинаковыми данными, независимо от комбинации Выбранные комнаты.
Комнаты выбираются с помощью флажков ...
<input type="checkbox" class="checkboxMargins" id="meetingRoom" name="roomID" value="1" onClick="Check();">
<input type="checkbox" class="checkboxMargins" id="library" name="roomID" value="2" onClick="Check();">
<input type="checkbox" class="checkboxMargins" id="jajRoom" name="roomID" value="3" onClick="Check();">
<input type="checkbox" class="checkboxMargins" id="annex" name="roomID" value="4" onClick="Check();">
Когда флажок установлен, некоторые сценарии JQuery от JonoJames можно найти здесь Выходные данные из MYSQL ... используются для заполнения скрытых полей ввода для стоимости комнаты.
Я пытался использовать name="roomID[]
, но это выдает ошибку относительно массивов и не нравится заявление INSERT
.
Все это прекрасно работает при бронировании одного номера, просто если забронировано более одного, я не могу работать.
Я думаю, что мне нужно используйте for
или foreach
но exa Здесь приведены примеры, которые не показывают, как взять данные из формы и вставить их в таблицу.
Что мне нужно знать, так это если for
или foreach
- это путь к go что делать и как им пользоваться. Если нет, что мне нужно делать?