Я только начинаю с PHP, поэтому, пожалуйста, потерпите меня.У меня, казалось бы, легкое задание, с которым я застрял.Я пытался найти какую-то помощь, но не смог найти то, что мне нужно.И что мне нужно сделать, это вставить несколько записей в таблицу mysqli из формы HTML на основе выбранного количества записей и выбранной даты.
Это своего рода повторяющееся событие, но без каких-либо календарей или событий на стороне сервера.,Просто вставив новые записи в существующую таблицу.
Я создал форму, которая выглядит следующим образом:
<form action="" method="post" id="form_pay" name="form_pay" >
<input type="text" name="pay_client_id[]" value="<?php echo $client_id; ?>" />
<input type="text" name="pay_amount[]" />
<input type="text" name="pay_number[]" />
<input type="text" name="pay_due_date[]" />
<input type="submit" id="submit_pay" name="submit_pay" value="Create Table" />
</form>
, а таблица БД называется pay_schedules:
=====================================================
pay_id | client_id | amount | due_date
=====================================================
и, наконец,начало php:
if(isset($_POST["submit_pay"])){
$client_id = $_POST['pay_client_id'];
$amount = $_POST['pay_amount'];
$due_date = date('Y-m-d',strtotime($_POST['pay_due_date']));
$pay_number = $_POST['pay_number'];
//connection details
$servername = "localhost";
$username = "my_user";
$password = "my_password";
$dbname = "my_db";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
// insert into table
$sql = "INSERT INTO pay_schedules
(client_id, amount, due_date)
VALUES ( '$client_id', '$amount', '$due_date' ) ";
// messages
if ($conn->query($sql) === TRUE) { } else { $conn->error; }
$conn->close();
}
Очевидно, что PHP не завершен, и я знаю, что должен обернуть запрос в цикл, но я сталкиваюсь со следующими проблемами:
- как вставить числозаписей на основе поля pay_number (например, 4 записи, 10 записей, 24 записи и т. д.)
- как создать цикл foreach, который увеличивает месяц +1 с каждой вставленной записью до номера выбранного поля pay_number
- все вставленные записи должны начинаться с due_date и иметь тот же день, но последовательный месяц (например, 2019-11-20, 2019-12-20, 2020-01-20), но как избежать проблем с последним днем месяцаесли 28-е, 29-е, 30-е или 31-е выбраны для месяцев без этих дней?
, поэтому я на самом деле хочу получить таблицу, которая выглядит ниже на основе следующих предположений:
- оплата_client_id: 1001
- номер_платы: 5
- pay_amount: 150.25
- pay_due_date: 2019-10-31
- pay_id: автоинкремент PK
финальный стол:
=====================================================
pay_id | client_id | amount | due_date
=====================================================
1 | 1001 | 150.00 | 2019-10-31
2 | 1001 | 150.00 | 2019-11-30
3 | 1001 | 150.00 | 2019-12-31
4 | 1001 | 150.00 | 2020-01-31
5 | 1001 | 150.00 | 2020-02-29
Надеюсь, я объяснил свою проблему, поэтому, если кто-нибудь сможет мне здесь помочь, я буду очень признателен.