Subversion Repositories eFlore/Applications.cel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 2040 → Rev 2041

/branches/v1.9-echenilloir/jrest/services/ImportXLS.php
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
/branches/v1.9-echenilloir/.
Property changes:
Modified: svn:mergeinfo
Merged /trunk:r2034