/** * form2bdd() * Permet de faire un enregistrement dynamique d'apres les infos dans $args_ * les nom des champs informations doivent commencer par d_ * @param $table_ table dans laquelle stocker les infos du formulaure * @param $args_ tableau (généralement _POST) dont on lit les données pour faire la requette * @param string $where_clause_ pour définir si on fait un update ou un insert (si vide) * @return **/function form2bdd($table_, $args_, $where_clause_='') {
//analyse des arguments if(count($args_)>0) {
//ce traitement des données est commum pour les 2 parties du bas //on parse les arguments $champs_tab=array();
$valeurs_tab=array();
foreach($args_ AS $champ => $valeur) {
//si la cle commence par d_, on le supprime et on s'en sert pour la query if(eregi("^d_",$champ)) {
$new_champ=eregi_replace("^d_","",$champ);
$champs_tab[]=$new_champ;
$valeurs_tab[]="'$valeur'";
}
}
//on envoie les infos dans la base if($where_clause_=='') {
//on colle tout ca $champs="(".implode(", ", $champs_tab).")";
$valeurs="(".implode(", ", $valeurs_tab).")";
//on construit la query $query="INSERT INTO $table_ $champs VALUES $valeurs";
} else {
$update_tab=array();
for($i=0;$i < count($champs_tab);$i++) {
$update_tab[]="{$champs_tab[$i]}={$valeurs_tab[$i]}";
}
//on colle tout ca $update=implode(", ", $update_tab);
$query="UPDATE $table_ SET $update $where_clause_";
}
mysql_query($query) or print "";
}
//pas d'arguments, il y a une erreur qq-part}