Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3575 → Rev 3576

/trunk/jrest/bibliotheque/GestionChampsEtendus.php
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__));
}