IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mail après un update [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut mail après un update
    Bonjour à tous,

    je souhaite mettre à jour des info de ma table 'utilisateurs' puis envoyer un mail à chaque utilisateur concerné par l'update.

    J'ai commencé un embryon de code en essayant d'imbriquer un SELECT dans un UPDATE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $db = mysql_connect($host, $dbuser, $dbpswd); 
    mysql_select_db($mysqldb,$db);   
     
    $sql = "update users SET login="xxx",password="xxxx" WHERE login='' IN (SELECT FROM users WHERE (niveau='membre' or niveau='staff') ";
     
    $rs = mysql_query($sql);
     
    while ($row = mysql_fetch_array($rs)){
     
    $emailaddress= $row['email'];
     
    $message = "Salut " . $row['nom']."\n\n"; 
    $message .= "voici ton nouveau login : " . $row['login']."\n\n"; 
    $message .= "et ton nouveau  mdp : " . $row['mdp']."\n\n";
     
     
    mail($emailaddress, "tes parametres" , $message, "From: admin <admin@toto.com>");  
    }
    mysql_close($db);
    mais j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    qui me pète à la figure

    Une âme charitable pourrait-elle me dire où se trouve mon erreur.

    Merci par avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Un peu de recherche ne serait pas de trop :
    http://php.developpez.com/faq/?page=...ysql_ressource
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    Yep assurément

    Je me doutais que ma requête est foireuse ( et qu'elle ne retourne rien ) mais suis je sur la bonne voie ?

    on peut récupérer le nombre d'enregistrement affecté par l'UPDATE avec mysql_affected_rows() mais peut - on récupérer le résultat d'un UPDATE par un mysql_fetch_array() ou mysql_fetch_assoc ou mysql_fetch_object() ?

    Merci par avance pour vos lumières

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour savoir quelles lignes sont mises à jour, il faudrait d'abord faire un SELECT.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    Bon bah j'ai trouvé une solution qui vaut ce qu'elle vaut on peut en discuter, je suis toujours partant pour m'améliorer.

    Voici pour ceux que cela pourrait intéressé.

    j'ai ajouté un champ (modif_login) dans ma table users pour accueillir un numéro d'incrément générer par une fonction .
    Je récupère ce numéro dans une variable $f
    ma requête donnera ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE users SET login="xxx",password="xxxx", modif_login=$f WHERE (niveau='membre' or niveau='staff') and login=''
    je peux ensuite faire un select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT From users WHERE modif_login=$f
    ensuite je peux récupérer le jeux de résultat et boucler pour l'envoi de mes mails.

    Merci Sabotage, tes coups de pieds aux f..... m'ont donné un peu de hauteur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/05/2006, 01h12
  2. reception mail apres reponse de sujet
    Par luta dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 20/04/2006, 13h58
  3. [IB6] : Faire la mise à jour de tout les pc après un update
    Par tipiweb dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/03/2006, 19h42
  4. Notification de redémarrage après windows Update.
    Par genialk2000 dans le forum Sécurité
    Réponses: 2
    Dernier message: 22/02/2006, 16h12
  5. Conflit d'ecriture apres un update
    Par ouellet5 dans le forum Access
    Réponses: 9
    Dernier message: 22/10/2005, 05h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo