Subversion Repositories eFlore/Applications.cel

Rev

Rev 1840 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1840 Rev 1904
Line 130... Line 130...
130
		$ajout = Cel::db()->executerRequeteSimple($requete);
130
		$ajout = Cel::db()->executerRequeteSimple($requete);
131
		return ($ajout !== false);
131
		return ($ajout !== false);
132
	}
132
	}
Line 133... Line 133...
133
 
133
 
134
	/**
134
	/**
135
	* Ajoute plusieurs champs étendus à la fois.
135
     * Ajoute plusieurs champs étendus à la fois.
136
	* Si la clé existe déjà, seule la valeur du champ est mise à jour
136
     * Si la clé existe déjà, seule la valeur du champ est mise à jour
137
	*
137
     *
138
	* @param array $champs_etendus tableau d'objets ChampEtendu
138
     * @param array $champs_etendus tableau d'objets ChampEtendu
139
	* @return bool true si l'ajout a eu lieu
139
     * @return bool true si l'ajout a eu lieu
140
	*/
140
     */
-
 
141
	public function ajouterParLots(Array $champs_etendus) {
-
 
142
        if(! $champs_etendus) return TRUE; // le tableau ... vide à été inséré
141
	public function ajouterParLots(Array $champs_etendus) {
143
 
142
		$lignes = array();
144
		$lignes = array();
143
		foreach ($champs_etendus as $champ_etendu) {
145
		foreach ($champs_etendus as $champ_etendu) {
144
			$id = Cel::db()->proteger($champ_etendu->id);
146
			$id = Cel::db()->proteger($champ_etendu->id);
145
			$cle = Cel::db()->proteger($champ_etendu->cle);
147
			$cle = Cel::db()->proteger($champ_etendu->cle);
146
			$label = Cel::db()->proteger($champ_etendu->label);
148
			$label = Cel::db()->proteger($champ_etendu->label);
Line 147... Line 149...
147
			$valeur = Cel::db()->proteger($champ_etendu->valeur);
149
			$valeur = Cel::db()->proteger($champ_etendu->valeur);
148
 
150
 
149
			$lignes[] = "($id, $cle, $label, $valeur)";
-
 
150
		}
-
 
151
		$values = implode(',', $lignes);
-
 
152
 
-
 
153
		$requete = "INSERT INTO {$this->table_champs_etendus} ".
-
 
154
			"({$this->champ_id}, cle, label, valeur) ".
-
 
Line 155... Line 151...
155
			"VALUES $values ".
151
			$lignes[] = "($id, $cle, $label, $valeur)";
156
			"ON DUPLICATE KEY UPDATE valeur = VALUES(valeur)";
152
		}
157
 
153
 
-
 
154
		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
-
 
155
		// où l'on change de sgbd
-
 
156
		$ajout = Cel::db()->executerRequeteSimple(sprintf(
-
 
157
            "INSERT INTO %s (%s, cle, label, valeur) VALUES %s ON DUPLICATE KEY UPDATE valeur = VALUES(valeur) -- %s:%d",
-
 
158
            $this->table_champs_etendus,
158
		// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
159
            $this->champ_id,
159
		// où l'on change de sgbd
160
            implode(',', $lignes),
Line 160... Line 161...
160
		$ajout = Cel::db()->executerRequeteSimple($requete);
161
            __FILE__, __LINE__));
161
		return ($ajout !== false);
162
		return ($ajout !== false);