czy używając PDO mogę w pętli podać do bazy dwie zwiększające się wartości? Nie umiem tego zrobić, dla jestej jest ok i jest to
// dodane platnosci do cyklu
if ($ile_powtarzac == 'tydzien')
{
$sth = $db->prepare('INSERT INTO cykl (id, id_platnosci, rata, data_raty, status) VALUES (NULL, :last_id, :rata, :data_raty, 0 )');
for( $i=1; $i<=$ile_powtarzac; $i++ ){
$sth->bindValue( ':last_id', $last_id );
$sth->bindValue( ':rata', $i );
$sth->bindValue( ':data_raty', $data_raty );
$sth->execute();
}
to działa poprawnie, doaje tyle ile potrzeba ale potrzebowałbym aby jeszcze dodatkowo oprócz zwiększającego się o 1 wartości w polu rata zwiększała się też data raty o 7 dni i tego już nie umiem, da się to w ogóle w PDO?
np. cos takiego próbowałem ale nie działa (domyślałem się, chcę tu pokazać kod o co mi chodzi)
// dodane platnosci do cyklu
if ($ile_powtarzac == 'tydzien')
{
$target=strtotime(date($data));
$sth = $db->prepare('INSERT INTO cykl (id, id_platnosci, rata, data_raty, status) VALUES (NULL, :last_id, :rata, :data_raty, 0 )');
for( $i=1; $i<=$ile_powtarzac; $i++ ){
$sth->bindValue( ':last_id', $last_id );
$sth->bindValue( ':rata', $i );
$sth->bindValue( ':data_raty', $target=strtotime('+7 days',$target) );
$sth->execute();
}
EDIT ////
coś zadziałało ale czy jest to jakkolwiek poprawne?
$data_raty = '0';
$target=strtotime(date($data));
$sth = $db->prepare('INSERT INTO cykl (id, id_platnosci, rata, data_raty, status) VALUES (NULL, :last_id, :rata, :data_raty, 0 )');
for( $i=1; $i<=$ile_powtarzac; $i++ ){
$sth->bindValue( ':last_id', $last_id );
$sth->bindValue( ':rata', $i );
$sth->bindValue( ':data_raty', $data_raty );
if ($sth->execute())
{
$last_id_cyklu = $db->lastInsertId();
$sth2 = $db->prepare("UPDATE cykl SET data_raty=$target WHERE id=$last_id_cyklu");
for ($x=0; $x <1 ; $x++)
{
$sth2->execute();
$target=strtotime('+7 days',$target);
}
}
}