vendredi 22 juillet 2005

form2bdd($table_, $args_, $where_clause_='')

/**
* 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

}

2 commentaires:

  1. Anonyme4:54 PM

    merci, j'avais pas envie du tout de me la retaper celle là ;)

    Nicolas

    RépondreSupprimer
  2. De rien, elle est là pour ça.
    Tout le monde est friand de cette fonction je pense lol ;)

    RépondreSupprimer