Dzień dobry, chciałbym poniższym kodem ustawić w tabeli datę początku subskrypcji (data_oplac), okres trwania subskrypcji (czas_subskr) oraz datę końca (koniec_subskr).
Kolumny „data_oplac” oraz “koniec_subskr” mają format „date” i domyślną wartość NULL. Kolumna „czas_subskr” ma format INT w wartość domyślną 0.
Wykonanie poniższego kodu nie generuje błędów ale tez nic nie zmienia w tabeli.
Będę wdzięczny za wszelkie sugestie.
<?php
$uczestnik[0] ['nip'] = $_POST['nip_0']; // identyfikacja uczestnika
$uczestnik[0] ['data'] = $_POST['data_0']; // data początku subskrypcji w formacie 2024-07-26
$uczestnik[0] ['status_opl'] = $_POST['status_opl_0']; // okres subskrypcji 6 lub 12 (miesięcy)
$uczestnik[1] ['nip'] = $_POST['nip_1'];
$uczestnik[1] ['data'] = $_POST['data_1'];
$uczestnik[1] ['status_opl'] = $_POST['status_opl_1'];
$uczestnik[2] ['nip'] = $_POST['nip_2'];
$uczestnik[2] ['data'] = $_POST['data_2'];
$uczestnik[2] ['status_opl'] = $_POST['status_opl_2'];
foreach ($uczestnik as $numer_indeksu){
$uczestnik_nip = $numer_indeksu['nip'];
$uczestnik_data = $numer_indeksu['data'];
$okres_sub = $numer_indeksu['status_opl'];
$okres_sub = 'P'.$okres_sub.'M'; // ustawienie wymaganego formatu P6M lub P12M
$poczatek = new DateTime($uczestnik_data);
$okres = new DateInterval($okres_sub); // ustawienie okresu subskrypcji (6 lub 12 m-cy)
$koniec = new DateTime($uczestnik_data);
$koniec->add($okres); // ustawienie daty końca okresu subskrupcji
$sql = "UPDATE sprzedajacy
SET data_oplac = :data_op, czas_subskr = :czas_sub, koniec_subskr = :koniec_sub
WHERE NIP = :nip ;";
$instrukcja = $pdo->prepare($sql);
$instrukcja->bindValue('nip', $uczestnik_nip, PDO::PARAM_INT);
$instrukcja->bindValue('data_op', $uczestnik_data, PDO::PARAM_STR);
$instrukcja->bindParam('czas_sub', $okres, PDO::PARAM_INT);
$instrukcja->bindParam('koniec_sub', $koniec, PDO::PARAM_STR);
$instrukcja->execute();
}
?>