37,7 → 37,8 |
} |
// filtrage des entiers à partir des ids existant réellement en DB |
$ids_images_filtrees = $this->filtrerImgUtilisateur($ids_images, $id_utilisateur); |
$ids_observations_filtrees = $this->filtrerObsUtilisateur($ids_observations, $id_utilisateur); |
$infos_observations_filtrees = $this->filtrerObsUtilisateur($ids_observations, $id_utilisateur); |
$ids_observations_filtrees = self::extraireValeurs($infos_observations_filtrees, 'id_observation'); |
if (empty($ids_images_filtrees) || empty($ids_observations_filtrees)) { |
die('err'); |
} |
44,14 → 45,21 |
|
$values = array(); |
foreach ($ids_images_filtrees as $id_img) { |
foreach ($ids_observations_filtrees as $id_obs) { |
$values[] = "($id_img, $id_obs, NOW())"; |
foreach ($infos_observations_filtrees as $infos_obs) { |
$id_obs = $infos_obs['id_observation']; |
$dateTransmission = $infos_obs['date_transmission']; |
$transmission = $infos_obs['transmission']; |
$values[] = "($id_img, $id_obs, NOW(), $dateTransmission, $transmission)"; |
} |
} |
$clauseValues = implode(',', $values); |
$requete = 'INSERT INTO cel_images (id_image, ce_observation, date_liaison) '. |
$requete = 'INSERT INTO cel_images (id_image, ce_observation, date_liaison, date_transmission, transmission) '. |
"VALUES $clauseValues ". |
'ON DUPLICATE KEY UPDATE ce_observation = VALUES(ce_observation), date_liaison = NOW() '. |
'ON DUPLICATE KEY UPDATE '. |
' ce_observation = VALUES(ce_observation), '. |
' date_liaison = NOW(), '. |
' date_transmission = VALUES(date_tranmission), '. |
' transmission = VALUES(tranmission) '. |
' -- ' . __FILE__ . ':' . __LINE__; |
$resultat = Cel::db()->executer($requete); |
if ($resultat) { |
122,8 → 130,8 |
die('err'); |
} |
$ids_images_filtrees = $this->filtrerImgUtilisateur($ids_images, $id_utilisateur); |
$ids_observations_filtrees = $this->filtrerObsUtilisateur($ids_observations, $id_utilisateur); |
|
$infos_observations_filtrees = $this->filtrerObsUtilisateur($ids_observations, $id_utilisateur); |
$ids_observations_filtrees = self::extraireValeurs($infos_observations_filtrees, 'id_observation'); |
if (empty($ids_images_filtrees) || empty($ids_observations_filtrees)) { |
die('err'); |
} |
131,14 → 139,11 |
$idsImgConcat = implode(',', $ids_images_filtrees); |
$idsObsConcat = implode(',', $ids_observations_filtrees); |
$requete = 'UPDATE cel_images '. |
'SET ce_observation = NULL '. |
'SET ce_observation = NULL, date_liaison = NULL, date_transmission = NULL, transmission = 0 '. |
"WHERE id_image IN ($idsImgConcat) AND ce_observation IN ($idsObsConcat)". |
' -- '.__FILE__.':'.__LINE__; |
$resultats = Cel::db()->executer($requete); |
if ($resultats) { |
exit('OK'); |
} |
die('err'); |
($resultats) ? exit('OK') : die('err'); |
} |
|
private function filtrerImgUtilisateur($ids_images, $id_utilisateur) { |
149,27 → 154,36 |
"AND ce_utilisateur = $id_utilisateur ". |
' -- '.__FILE__.':'.__LINE__; |
$resultats = Cel::db()->requeter($requete); |
return array_map(array(__CLASS__, 'getRequeteVal'), $resultats); |
return self::extraireValeurs($resultats, 'id_image'); |
} |
|
private function filtrerObsUtilisateur($ids_observations, $id_utilisateur) { |
$idsObsConcat = implode(',', $ids_observations); |
$requete = 'SELECT id_observation '. |
$requete = 'SELECT id_observation, transmission, date_transmission '. |
'FROM cel_obs '. |
"WHERE id_observation IN ($idsObsConcat) ". |
"AND ce_utilisateur = $id_utilisateur ". |
' -- '.__FILE__.':'.__LINE__; |
$resultats = Cel::db()->requeter($requete); |
return array_map(array(__CLASS__, 'getRequeteVal'), $resultats); |
$valeurs = (is_array($resultats) && count($resultats) > 0) ? $resultats : array(); |
return $valeurs; |
} |
|
static function filterInt($str_liste) { |
private static function filterInt($str_liste) { |
return array_filter(array_map('intval', explode(',', $str_liste))); |
} |
|
// extrait la première valeur d'un tableau, utile pour renvoyer un tableau de simple valeur |
// à partir d'une requête effectuée sur un seul champ. |
static function getRequeteVal($arr) { |
return array_shift($arr); |
/** |
* Extrait les valeurs d'un champ donné. Utile pour renvoyer un tableau de simples valeurs |
* à partir des résultats d'une requête effectuée sur un seul champ. |
*/ |
private static function extraireValeurs($resultats, $champNom) { |
$valeurs = array(); |
if (is_array($resultats) && count($resultats) > 0) { |
foreach ($resultats as $infos) { |
$valeurs = $infos[$champNom]; |
} |
} |
return $valeurs; |
} |
} |