175,7 → 175,9 |
$this->controleUtilisateur($id_utilisateur); |
|
$this->utilisateur = $this->getInfosComplementairesUtilisateur($id_utilisateur); |
|
|
|
$this->initialiser_colonnes_statiques($id_utilisateur); |
|
// initialisation du statement PDO/MySQL |
322,7 → 324,7 |
$donnees = array(); |
foreach($enregistrements as $e) $donnees = array_merge($donnees, array_values($e)); |
|
// echo $sql_pattern . "\n"; var_dump($enregistrements, $donnees); die; // debug ici |
// echo $sql_pattern . "\n"; var_dump($enregistrements, $donnees); die; // debug ici |
|
$stmt->execute($donnees); |
|
335,7 → 337,10 |
$obs_ajouts += count($enregistrements); |
// $obs_ajouts += count($enregistrements['insert']); |
// $obs_maj += count($enregistrements['update']); |
$nb_images_ajoutees += self::stockerImages($enregistrements, $images, $dernier_autoinc); |
|
$ordre_ids = self::chargerCorrespondancesIdOrdre($this, $enregistrements); |
|
$nb_images_ajoutees += self::stockerImages($enregistrements, $images, $ordre_ids); |
$nb_mots_cle_ajoutes += self::stockerMotsCle($enregistrements, $mots_cle, $dernier_autoinc); |
} |
|
420,6 → 425,25 |
// ==> Array ( I => rien, AA => Phénologie ) |
return array_merge($colonnesID_non_reconnues, $colonnesID_a_exclure); |
} |
|
static function chargerCorrespondancesIdOrdre($cel, $lignes) { |
|
$ordre_ids = array(); |
|
$requete_obs_ids = "SELECT id_observation, ordre FROM cel_obs WHERE ordre IN ("; |
foreach($lignes as &$ligne) { |
$requete_obs_ids .= $ligne['ordre'].','; |
} |
$requete_obs_ids = rtrim($requete_obs_ids, ','); |
$requete_obs_ids .= ") AND ce_utilisateur = ".Cel::db()->proteger($cel->id_utilisateur); |
|
|
$obs_ids = Cel::db()->requeter($requete_obs_ids); |
foreach($obs_ids as &$obs) { |
$ordre_ids[$obs['ordre']] = $obs['id_observation']; |
} |
return $ordre_ids; |
} |
|
/* |
* charge un groupe de lignes |
492,15 → 516,13 |
return $c; |
} |
|
static function stockerImages($enregistrements, $toutes_images, $lastid) { |
static function stockerImages($enregistrements, $toutes_images, $ordre_ids) { |
$images_insert = 'INSERT INTO cel_obs_images (id_image, id_observation) VALUES %s ON DUPLICATE KEY UPDATE id_image = id_image'; |
$images_obs_assoc = Array(); |
|
foreach($toutes_images as $images_pour_obs) { |
$obs = $enregistrements[$images_pour_obs["obs_pos"]]; |
$id_obs = $lastid // dernier autoinc inséré |
- count($enregistrements) + 1 // correspondrait au premier autoinc |
+ $images_pour_obs["obs_pos"]; // ordre d'insertion = ordre dans le tableau $enregistrements (commence à 0) |
$id_obs = $ordre_ids[$obs['ordre']]; // id réel de l'observation correspondant à l'ordre |
foreach($images_pour_obs['images'] as $image) { |
$images_obs_assoc[] = sprintf('(%d,%d)', |
$image['id_image'], // intval() useless |