Napisałem sobie taka oto funkcje:
Kod
function updateData() {
$db = $this -> sql;
$fieldarray = $this->fieldarray; // $_POST z formularza
$fieldlist = $this->fieldlist; // array('kolumna1','kolumna2','kol3')
$merged = array_combine($fieldlist, $fieldarray);
foreach ($merged as $key => $v) {
if ($v != 'NOW()') {
$update .= "$key='$v', ";
} else {
$update .= "$key=$v, ";
}
}
$update = rtrim($update, ', ');
$db -> query(" UPDATE " .$this->table. " SET $update WHERE ".$this->id." = ".$_POST['id']." ") or die($db->error());
} //end of insert data
$db = $this -> sql;
$fieldarray = $this->fieldarray; // $_POST z formularza
$fieldlist = $this->fieldlist; // array('kolumna1','kolumna2','kol3')
$merged = array_combine($fieldlist, $fieldarray);
foreach ($merged as $key => $v) {
if ($v != 'NOW()') {
$update .= "$key='$v', ";
} else {
$update .= "$key=$v, ";
}
}
$update = rtrim($update, ', ');
$db -> query(" UPDATE " .$this->table. " SET $update WHERE ".$this->id." = ".$_POST['id']." ") or die($db->error());
} //end of insert data
Działa ona bardzo ładnie. Jednak chciałem rozszerzyć możliwości edytowania wielu pól w formularzu na raz. I tu pojawia się problem ponieważ tablica z danych z formularza wyglada wtedy tak "1,2,3,1,2,3..." ma ktoś jakiś pomysł? może podzielić ja wcześniej po 3? ale to nie jest uniwersalne bo moze byc wiecej pol.