137,26 → 137,25 |
if (! $champs_etendus) return TRUE; // le tableau ... vide à été inséré |
$ajout = false; |
$label_champs_etendus = new GestionChampsEtendus2($this->config); |
$champs_etendus_id = $label_champs_etendus->consulterGroupesChampsEtendusPredefinis($projet); |
if ($champs_etendus_id !== null) { |
|
$lignes = array(); |
foreach ($champs_etendus as $champ_etendu) { |
if (isset($champs_etendus_id[$champ_etendu->cle])) { |
$id = Cel::db()->proteger($champ_etendu->id); |
$cle = Cel::db()->proteger($champs_etendus_id[$champ_etendu->cle]['id']); |
$valeur = Cel::db()->proteger($champ_etendu->valeur); |
$lignes = array(); |
foreach ($champs_etendus as $champ_etendu) { |
$champ_id = $label_champs_etendus->consulter($champ_etendu->cle); |
if ($champ_id != false) { |
$id = Cel::db()->proteger($champ_etendu->id); |
$cle = Cel::db()->proteger($champ_id[0]['id']); |
$valeur = Cel::db()->proteger($champ_etendu->valeur); |
|
$lignes[] = "($id, $cle, $valeur)"; |
} |
$lignes[] = "($id, $cle, $valeur)"; |
} |
} |
|
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour |
// où l'on change de sgbd |
$ajout = Cel::db()->executer(sprintf( |
"INSERT INTO %s (%s, extended_field_id, value) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d", |
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour |
// où l'on change de sgbd |
if ($lignes != array()) { |
$ajout = Cel::db()->executer(sprintf( |
"INSERT INTO %s (%s, extended_field_id, value) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d", |
$this->table_obs_etendus, |
$this->champ_id, |
$this->champ_id, |
implode(',', $lignes), |
__FILE__, __LINE__)); |
} |