Page 1 sur 1

comparaison de variables

Posté : 10 oct. 2006, 20:05
par BeRoots
salut à tous :)

je bosse sur une page profil pour mon site et je n'arrive pas à voir comment faire pour comparer les variables recuperer par post et celles en db...

en faite je pensai faire ça à l'aide de tableaux où on enregistrerai les variables recuperées par post ainsi que celle recuperées en db. ensuite il faudrai faire une boucle qui ne renvoi que les variables post differente de leurs correspondantes variables en db en les assignant à des variables differente qui leurs correspondrai :?

c'est surtout pour eviter de faire ce genre de comparaison qui surcharge le code (surtout si il y a beaucoup d'entrées de formulaire):
<?php
if($nom_post != $nom_db)
{
$nom_a_mettre_a_jour = $nom_post;
}else
{
$nom_a_mettre_a_jour ='';
}
if($prenom_post != $prenom_db)
{
$prenom_a_mettre_a_jour = $prenom_post;
}else
{
$prenom_a_mettre_a_jour = '';
}
if($adresse_post != $adresse_db)
{
$adresse_a_mettre_a_jour = $adresse_post;
}else
{
$adresse_a_mettre_a_jour = '';
}
...
...
...
?>
Bref, si quelqu'un comprend ce que je cherche à faire ;)
merci d'avance :)

Posté : 10 oct. 2006, 20:35
par graphistnet
Alors, moi j'ai compris que tu as une page profil et deux types de variables :

1/ variables venant d'un formulaire
2/ variables venant d'une base de données.

C'est bien le cas? si oui cool alors :P mais je n'ai absolument pas compris ce que tu cherches à faire et dans quel but?
D'où viennent tes variables de formulaire? que fait cette page profil?
En gros peux tu en dire plus parce que là c'est plus que flou ;)

Posté : 10 oct. 2006, 21:27
par BeRoots
Alors en fait, c'est un peut la même chose qu'une page profil sur un forum:

- on modifie les valeurs recuperées en db dans les champs du formulaire par de nouvelle valeur afin de les mettre à jour en db.

j'ai déjà fait tout ce qui est formulaire + gestion des erreurs...

j'arrive au moment où je doit comparer mes variables post à celle en db afin de ne retourner que les variables post differente de leur variables correspondante en db. et j'aimerai mieux faire ça sous forme de boucle plutôt que comme dans l'exemple ci dessus :?

en gros si $nom_post != $nom_db ==> on retourne $nom_post (ou une variable d'un autre nom mais égal à $nom_post)
Mais si $nom_post == $nom_db ==> on retourne $nom_post == ''; (ou une variable d'un autre nom et vide)

la boucle fera automatiquement la comparaison suivant les deux conditions ci-dessus, entre toutes les variables récuperer par post et leurs variables correspondantes recuperer en db (peut être un tableau associatif avec toutes les variables post et db dedans ou deux tableaux...puis une petite boucle qui pour chaque variable post, la compare à sa correspondante db et retourne une variable soit vide soit egal à la variable post en question)

dernière précision importante: j'ai deja mes variables en db et de post de récuperer plus haut dans mon script.

si quelqu'un a une idée sur le comment faire ;)

Posté : 11 oct. 2006, 10:46
par titerm
si tu as déjà la liste des variables dans un tableau, il te suffit de faire une simple boucle sur cette liste
QQ chose du genre

foreach ($listVariable as $nomVar) {
  if(${"${nomVar}_post"} != ${"${nomVar}_db"}) {
    ${"${nomVar}_a_mettre_a_jour"} = ${"${nomVar}_post"};
  }else {
    ${"${nomVar}_a_mettre_a_jour"} ='';
  }
}

Posté : 11 oct. 2006, 11:42
par BeRoots
hmmm, c'est exactement ce que je cherche à faire :)
je croit que tu va avoir droit à ton brevet de décodage de charabiat beroots haut la main :lol:

par contre je voit pas trop comment faire pour définir le (ou les) tableau(x)?

comme ceci?
<?php
$listVariable = array($nom_post => $nom_db, $prenom_post => $prenom_db, $adresse_post => $adresse_db)
$nomVar = array(nom, prenom, adresse)

foreach ($listVariable as $nomVar) {
  if(${"${nomVar}_post"} != ${"${nomVar}_db"}) {
    ${"${nomVar}_a_mettre_a_jour"} = ${"${nomVar}_post"};
  }else {
    ${"${nomVar}_a_mettre_a_jour"} ='';
  }
}
?>
si quelqu'un peut me dire si c'est bien ça et comment vais je pouvoir récupèré les variables ${nomVar}_a_mettre_a_jour ?
merci d'avance ;)

Posté : 11 oct. 2006, 11:56
par jojolapine
juste en passant comme ça:
remplace
$listVariable = array($nom_post ==> $nom_db, $prenom_post ==> $prenom_db, $adresse_post ==> $adresse_db) 
par
$listVariable = array($nom_post => $nom_db, $prenom_post => $prenom_db, $adresse_post => $adresse_db) 
après j'ai rien suivi au problème mais la syntaxe cest ça! :wink:

Posté : 11 oct. 2006, 12:33
par BeRoots
ok merci j'ai edité mon precedent message ;)

par contre si quelqu'un peut y jeter un petit coup d'oeil histoire de voir si tout colle au niveau des tableaux, et me dire comment puis-je faire pour récuperer les nouvelle variables créé ;)

merci d'avance

Posté : 11 oct. 2006, 13:18
par titerm
tu fais juste un tableau avec la liste des variables de ton formulaire/BDD
$listVariable = array('nom', 'prenom', 'adresse'); // c'est des chaines, donc n'oublie pas les quotes

foreach ( etc...


Posté : 12 oct. 2006, 11:55
par BeRoots
ok j'ai fait pas mal de test et tout semble marcher à merveille :)

encore un super merci à vous tous ;)

je met résolu...