par
netsupra » 13 déc. 2006, 22:36
Lut, je t'ai fait ca tout a l'heure, mais j'ai oublié de le poster... a tout hasard je le met quand meme.
Code : Tout sélectionner
$req = "update identifiant set password='".$password."' email='".$email."' nom='".$nom."' prenom='".$prenom."' date_naissance='".$date_naissance."' profession='".$profession."' description_prof='".$description_prof."' passion='".$passion."' avatar='".$cheminPhoto."' where id='".$id."'";
$dem=mysql_query($req);
A mon avis, tu gagnerais en clarté dan ston code en ecrivant plutot :
Code : Tout sélectionner
$req = "UPDATE identifiant SET password='$password' email='$email' nom='$nom' prenom='$prenom' date_naissance='$date_naissance' profession='$profession' description_prof='$description_prof' passion='$passion' avatar='$cheminPhoto' where id='$id'";
$dem=mysql_query($req);
Mais la n'est pas la question, pour ton problème, je pense a une fonction qui te construirait ta requete de cette manière :
function makesql($champs, $table, $condition)
{
$requete = 'UPDATE ' . $table . ' SET '
for ($i=0; $i<count($champs); $i++)
{
if (isset($_post[$champs[$i]])&&!empty($_post[champs[$i]]);
$requete .= "'" . $champs[$i] . "' = " . ${$champs[$i]} . isset($champs[$i+1])?', ':' ';
}
$requete .= 'WHERE ' . $condition;
return $requete;
}
où champs est un tableau contenant les champs a tester, $table est la table sur laquelle faire la requete, condition, la condition qui va determiner l'enregistrement a mettre a jour.
Seul obligation : les champs du formulaire doivent porter le meme nom que ceux de la base de données.
Lut, je t'ai fait ca tout a l'heure, mais j'ai oublié de le poster... a tout hasard je le met quand meme.
[code]
$req = "update identifiant set password='".$password."' email='".$email."' nom='".$nom."' prenom='".$prenom."' date_naissance='".$date_naissance."' profession='".$profession."' description_prof='".$description_prof."' passion='".$passion."' avatar='".$cheminPhoto."' where id='".$id."'";
$dem=mysql_query($req);
[/code]
A mon avis, tu gagnerais en clarté dan ston code en ecrivant plutot :
[code]
$req = "UPDATE identifiant SET password='$password' email='$email' nom='$nom' prenom='$prenom' date_naissance='$date_naissance' profession='$profession' description_prof='$description_prof' passion='$passion' avatar='$cheminPhoto' where id='$id'";
$dem=mysql_query($req);
[/code]
Mais la n'est pas la question, pour ton problème, je pense a une fonction qui te construirait ta requete de cette manière :
[php]
function makesql($champs, $table, $condition)
{
$requete = 'UPDATE ' . $table . ' SET '
for ($i=0; $i<count($champs); $i++)
{
if (isset($_post[$champs[$i]])&&!empty($_post[champs[$i]]);
$requete .= "'" . $champs[$i] . "' = " . ${$champs[$i]} . isset($champs[$i+1])?', ':' ';
}
$requete .= 'WHERE ' . $condition;
return $requete;
}
[/php]
où champs est un tableau contenant les champs a tester, $table est la table sur laquelle faire la requete, condition, la condition qui va determiner l'enregistrement a mettre a jour.
Seul obligation : les champs du formulaire doivent porter le meme nom que ceux de la base de données.