public function enregistreHistoriqueNomsRues($params = array()) { //array(8) { ["idHistoriqueNomRue_0"]=> string(0) "" ["annee_0"]=> string(4) "1955" ["nomRue_0"]=> string(5) "plop1" ["commentaire_0"]=> string(5) "plop2" ["idHistoriqueNomRue_1"]=> string(0) "" ["annee_1"]=> string(4) "1956" ["nomRue_1"]=> string(5) "plop3" ["commentaire_1"]=> string(5) "plop4" } $d = new dateObject(); $tabAnnees = array(); $tabNomsRues = array(); $tabCommentaires = array(); $tabPrefixes = array(); foreach ($this->variablesPost as $intule => $value) { $tabIntitule = explode("_", $intule); $indice = $tabIntitule[1]; switch ($tabIntitule[0]) { case 'annee': $tabAnnees[$indice] = $value; break; case 'nomRue': $tabNomsRues[$indice] = $value; break; case 'commentaire': $tabCommentaires[$indice] = $value; break; case 'prefixe': $tabPrefixes[$indice] = $value; break; } } // on efface d'abord les valeurs précédentes $reqDelete = "DELETE FROM historiqueNomsRues WHERE idRue=" . $this->variablesGet['idModification']; $resDelete = $this->connexionBdd->requete($reqDelete); // ensuite on enregistre les nouvelles valeurs if (count($tabAnnees) > 0) { foreach ($tabAnnees as $indice => $value) { $reqInsert = "\n INSERT INTO historiqueNomsRues\n (idRue,annee,nomRue,commentaire,prefixe)\n VALUES\n ('" . $this->variablesGet['idModification'] . "',\"" . $d->toBdd($d->convertYears($tabAnnees[$indice])) . "\",\"" . mysql_real_escape_string($tabNomsRues[$indice]) . "\",\"" . mysql_real_escape_string($tabCommentaires[$indice]) . "\",\"" . mysql_real_escape_string($tabPrefixes[$indice]) . "\")\n "; $resInsert = $this->connexionBdd->requete($reqInsert); } } }
public function ajouter($parametres = array(), $liaisonsExternes = array()) { $html = ""; $this->fields = array(); $reqFieldsListe = "SHOW COLUMNS FROM " . $parametres['tableName'] . ";"; $resFieldsListe = $this->connexionBdd->requete($reqFieldsListe); // fabrication de la chaine requete d'ajout $arrayFields = array(); $primaryKeyField = ""; while ($fetchFields = mysql_fetch_assoc($resFieldsListe)) { if ($fetchFields['Key'] != 'PRI') { //$requeteModification.=$fetchFields['Field']."='".$this->variablesPost[$fetchFields['Field']]."'"; $arrayFields[] = $fetchFields['Field']; if (preg_match("/date/i", $fetchFields['Type'])) { $d = new dateObject(); if ((pia_ereg("/", $this->variablesPost[$fetchFields['Field']]) || pia_strlen($this->variablesPost[$fetchFields['Field']]) > 3) && !pia_ereg("-", $this->variablesPost[$fetchFields['Field']])) { $arrayValues[] = $d->toBdd($d->convertYears($this->variablesPost[$fetchFields['Field']])); } else { $arrayValues[] = $this->variablesPost[$fetchFields['Field']]; } } else { $arrayValues[] = $this->variablesPost[$fetchFields['Field']]; } } else { $primaryKeyField = $fetchFields['Field']; } } $listeFields = implode(', ', $arrayFields); $listeValues = implode('", "', $arrayValues); $requeteAjout = "insert into " . $parametres['tableName'] . " (" . $listeFields . ") VALUES (\"" . $listeValues . "\")"; $this->connexionBdd->requete($requeteAjout); $idNouvelElement = mysql_insert_id(); // gestion des champs supplementaires du formulaire qui ne sont pas des champs de la base de donnée if (isset($parametres['fieldsNotInBdd']) && is_array($parametres['fieldsNotInBdd']) && count($parametres['fieldsNotInBdd']) > 0) { foreach ($parametres['fieldsNotInBdd'] as $indice => $valuesFields) { // traitement specifiques aux champs qui ne sont pas liés a la base de donnée switch ($valuesFields['type']) { case 'uploadImageLiee': // ce cas d'upload n'ajoute pas de nom de fichier dans la base , on va en principe se referer a l'identifiant de la table courante // exemple , on ajoute une image sur un personne, l'image aura donc pour nom de fichier "idPersonne".jpg par exemple en fonction du parametrage if (isset($_FILES[$valuesFields['name']]) && $_FILES[$valuesFields['name']]['error']) { switch ($_FILES[$valuesFields['name']]['error']) { case 1: // UPLOAD_ERR_INI_SIZE echo "Le fichier dépasse la limite autorisée par le serveur !"; break; case 2: // UPLOAD_ERR_FORM_SIZE echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !"; break; case 3: // UPLOAD_ERR_PARTIAL echo "L'envoi du fichier a été interrompu pendant le transfert !"; break; case 4: // UPLOAD_ERR_NO_FILE echo "Le fichier que vous avez envoyé a une taille nulle !"; break; } } else { // pas d'erreur d'upload $i = new imageObject(); // classe image du framework $f = new fileObject(); if (isset($valuesFields['redimFilesAndSizesConfig']) && is_array($valuesFields['redimFilesAndSizesConfig']) && count($valuesFields['redimFilesAndSizesConfig']) > 0) { foreach ($valuesFields['redimFilesAndSizesConfig'] as $indiceConfigRedims => $valueConfigRedims) { $fichierParametre = ""; // on remplace le parametre par une valeur s'il y en a un $valueReplacementBdd = ""; // valeur que va prendre la parametre a remplacer $matches = array(); preg_match("/\\#\\#\\#bddField\\[(.+)\\]\\#\\#\\#/", $valueConfigRedims['nomFichierDestinationParametre'], $matches); // on detecte si il y a un parametre a remplacer par une valeur de la base de donnée ou pas if (count($matches) > 0) { $req = "SELECT " . $matches[1] . " FROM " . $parametres['tableName'] . " WHERE " . $primaryKeyField . "='" . $idNouvelElement . "'"; $res = $this->connexionBdd->requete($req); $fetchValeurCouranteBdd = mysql_fetch_assoc($res); $valueReplacementBdd = $fetchValeurCouranteBdd[$matches[1]]; $fichierParametre = str_replace($matches[0], $valueReplacementBdd, $valueConfigRedims['nomFichierDestinationParametre']); } $imageType = strtolower($f->getExtensionFromFile($_FILES[$valuesFields['name']]['name'])); if (file_exists($valueConfigRedims['repertoireDestination'] . $fichierParametre)) { // si un fichier du meme nom existe , on l'efface unlink($valueConfigRedims['repertoireDestination'] . $fichierParametre); } if ($fichierParametre != '') { if (isset($valueConfigRedims['taille'])) { $i->redimension($_FILES[$valuesFields['name']]['tmp_name'], $imageType, $valueConfigRedims['repertoireDestination'] . $fichierParametre, $valueConfigRedims['taille'], array('redimOnlyIfFileSizesSuperiorToRedimValue' => true)); } } else { echo "Le fichier n'a pu être redimensionné. Erreur de parametrage dans la fonction du framework formGenerator::modifier()<br>"; } } unlink($_FILES[$valuesFields['name']]['tmp_name']); } } break; } } } return $html; }