zsafae
Messages postés40Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention12 août 2005
-
8 août 2005 à 16:55
zsafae
Messages postés40Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention12 août 2005
-
9 août 2005 à 12:40
salut!
je dispose d'une page ou il y a un tableau dynamique qui contient les login qu'il me ramène de la table "administrateur" qui est dans ma base de données,or je vouderai selon les login extraits de la base de données,modifier un champs"password"qui se trouve dans une toute autre table"utilisateur",voici une partie de mon code et qui ne marche pas
$req="select login from administrateur ";
$res=mysql_query($req) or die ("La requête a échoué");
$i=0;
while($i<$lig=mysql_fetch_row($res))
{
$requete="UPDATE utilisateur SET password=$lig[i] " ;
$result=mysql_query($requete) or die ("La requête a échoué");
$i++;
}
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 8 août 2005 à 17:00
Qu'est-ce qui ne "marche" pas, quelle est l'erreur affichée ?
Ta requète d'update modifie toutes les lignes de ta table car il n'y a pas de clause where ;o)
Euh : « while($i<$lig=mysql_fetch_row($res)) » je ne pense pas que ça puisse fonctionner comme tu veux.
-> Que veux-ty faire ? Enregistrer les logins lus dans Administrateur comme password dans Utilisateurs, c'est cela ?
zsafae
Messages postés40Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention12 août 2005 8 août 2005 à 17:12
oui exactement,je vouderai en fait modifier les password qui sont dans la table utilisateurs avec les login de la table administrateur.
je pense que c ma requete qui est fausse(pas de message d'erreur)!
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 8 août 2005 à 17:33
Je ne comprends pas. Si la table Utilisateurs est vide, alors utilise une requète INSERT et non pas UPDATE. Si elle n'est pas vide, que veux-tu faire des enregitrements existants ? les remplacer par les logins administrateurs ? les ajouter à la suite ?
Tu as l'air de dire que tu veux modifier les enregistrements, mais alors, il faut qu'il y ait un lien logique entre les 2 tables. Il y en a-t-il un ?
zsafae
Messages postés40Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention12 août 2005 8 août 2005 à 17:51
voila en detail de quoi je dispose:
j ai une table utilisateurs où sont enregistrés tous les utilisateurs de mon application.si l'un de ces utilisateurs a oublié son mot de passe,j'enregistre son login dans une autre table que j'ai nomé"administrateur",or l'admin qui est aussi un utlisateur a le droit de consulter une page où sont affichés tous les login contenus dans la table administrateur(c a d les login ders utilisateurs ayant oubliés leurs mots de passes),or en clickant sur le boutton ok,l admin devrai reinitialiser les mots de passe qui sont dans la table utilisateur par leurs login,c a d ke si si par exemple X a oublié son mot de passe,j enregistre son login (X) dans la table administrateur,l admin y accède,click sur le bouton OK et le mot de passe deX deviens X
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 8 août 2005 à 18:00
Mais pourquoi as-tu 2 tables ? seule la table Utilisateurs suffit, j'imagine qu'elle contient les logins et mots de passe de tous les utilisateurs. Peut-être faut-il alors ajouter une colonne booleen : ReninitialiserMotDePasse. Seuls les administrateurs ont accès à la page qui permet de lister tous les logins dont ReninitialiserMotDePasse vaut vrai.
Je pense que ce serait plus simple comme ça...
Dans tous les cas, il faut mettre une clause where sur la requète de mise à jour du mot de passe !
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 8 août 2005 à 18:04
Quel est le nom de la colonne contenant les login dans la table Utilisateurs ? admettons que ce soit 'login', alors la requète pourait ressembler à :
$requete="UPDATE utilisateur SET password='".$lig[$i]."' WHERE login='".$lig[$i]."'" ;
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 8 août 2005 à 18:16
oui oui, j'avais pas vu ton post avant d'envoyer mon dernier...
Je pense quand même qu'une seule table suffit, avec un champ booléen comme décrit plus haut.
=> je ne suis pas sur de la syntaxe, mais dans l'idée :
$sql=mysql_query('update utilisateurs set utilisateur.password=utilisateur.login, utilisateurs.ReninitialiserMotDePasse=FALSE WHERE utilisateurs.ReninitialiserMotDePasse=TRUE)
zsafae
Messages postés40Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention12 août 2005 8 août 2005 à 18:37
la requete de davwart est correcte quand je metr echo $requete elle m affiche les enregistrements remplis mais,elle ne modifie rien au niveau de la table utilisateur dans ma base de données
zsafae
Messages postés40Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention12 août 2005 9 août 2005 à 10:27
bonjour,merci pour votre attention,hèlas je n'ai pas pu m'en sortir,quand je met echo $requete,la requete s'affiche avec les champs remplies mais ca ne me modifie rien au niveau de la base de donnéeS
zsafae
Messages postés40Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention12 août 2005 9 août 2005 à 10:58
OK,et merci enormément!!
voici mon code:
$req="update utilisateur,administrateur set utilisateur.password=utilisateur.login WHERE administrateur.login=utilisateur.login";
echo $req;
$res=mysql_query($req) or die("impossible d'éxecuter cette requete");
et voila ce que m'affiche la requete:
update utilisateur,administrateur set utilisateur.password=utilisateur.login WHERE administrateur.login=utilisateur.loginimpossible d'éxecuter cette requete
zsafae
Messages postés40Date d'inscriptionmardi 28 juin 2005StatutMembreDernière intervention12 août 2005 9 août 2005 à 11:05
voici le message d'erreur:
update utilisateur,administrateur set utilisateur.password=utilisateur.login WHERE administrateur.login=utilisateur.loginimpossible d'éxecuter cette requeteSomething is wrong in your syntax près de 'administrateur set utilisateur.password=utilisateur.login WHERE ' à la ligne 1