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 :

conflit entre deux fonction while


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut conflit entre deux fonction while
    Bonjour le forum.

    J'ai déposé un message il y a quelques jours que j'avai indiqué comme résolu car le script fonctionnait.
    Or il ne fonctionne pas aussi bien que ça car les destinaitaires m'ont contacté pour me dire que tous les messages avaient été melangés :

    Les noms des personnes ne correspondaient pas avec leur adresse mail pourtant dans la meme ligne de code :

    Voci le script :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    $server = "*****"; 
    $user = "*****"; 
    $password = "*****"; 
    $base = "*****"; 
    mysql_connect($server,$user,$password); 
    mysql_select_db($base);
     
    $res3= mysql_query ("SELECT `ident`,`nom`,`mail` FROM demandes WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) > date")  or die(mysql_error());
    while($candit = mysql_fetch_object($res3))
    {
    $d_Email[]=$candit->mail;
    }
    $res3= mysql_query ("SELECT `ident`,`nom`,`mail` FROM demandes WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) > date")  or die(mysql_error());
    while($ligne = mysql_fetch_array($res3, MYSQL_ASSOC))
    { 
    $ident = $ligne["ident"]; echo "ID :$ident";
    $nom = $ligne["nom"]; echo "NM :$nom";
    $mail = $ligne["mail"]; echo "Mail :$mail <br>";
    }
    echo "\nContenu du tableau $d_Email";
    print_r ($d_Email);
    $nb=count($res3);
    echo $nb;
    for($i=0;
    $i<count($d_Email);
    $i++){ 
    //$d_Email[$i]
    $Email="$d_Email[$i]";
    $modif= mysql_query("UPDATE demandes SET MAJ = 1 WHERE MAIL = '$Email'") or die(mysql_error());
    //email
    // on déclare les paramètres du mail 
    $expediteur = "";
    $url = "";
    $objet = "";
    $contenu = "ID :$ident; NM :$nom; Mail :$mail <br>";
    mail($Email, $objet,$contenu, "From: $expediteur\r\nReply-To: $expediteur\r\nContent-Type: text/html; charset=\"iso-8859-1\"\r\n");
    }
    mysql_close();
    ?>
    Pour plus d'infos, en fait c'est toujours le meme nom de personne et le meme ident qui est affiché et envoyé a tout le monde....c'est a dire aux adresses mail différentes....

    Merci d'avance et trés bonne fin de journée

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Pourquoi fais-tu deux fois la meme requete ?
    Le premier while est à supprimer.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Bonjour et deja merci pour votre réponse.

    Si je suprime le premier WHILE, ma fonction mail ne récupére par la variable $d_Email[]=$candit->mail; que je n'obtiens qu'avec "while($candit = mysql_fetch_object($res3))"

    Par contre je ne parviens pas a obtenir avec mysql_fetch_object($res3)) les informations présentes du typ :
    $ident = $ligne["ident"]; echo "ID :$ident";
    $nom = $ligne["nom"]; echo "NM :$nom";
    $mail = $ligne["mail"]; echo "Mail :$mail <br>";
    que je n'obtiens cette fois-ci qu'avec la fonction :mysql_fetch_array($res3, MYSQL_ASSOC))
    .

    Comment puis je faire un mix des deux, car il semble que bien que certains croient que mysql_fetch_object et mysql_fetch_array soient identiques, apparemment mon script dit le contraire

    J'ai grand besoin d'aide et je vous remercie deja beaucoup de m'avoir répondu.

    au plaisir de vous lire a nouveau

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Il suffit de transformer ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $res3= mysql_query ("SELECT `ident`,`nom`,`mail` FROM demandes WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) > date")  or die(mysql_error());
    while($candit = mysql_fetch_object($res3))
    {
    $d_Email[]=$candit->mail;
    }
    $res3= mysql_query ("SELECT `ident`,`nom`,`mail` FROM demandes WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) > date")  or die(mysql_error());
    while($ligne = mysql_fetch_array($res3, MYSQL_ASSOC))
    { 
    $ident = $ligne["ident"]; echo "ID :$ident";
    $nom = $ligne["nom"]; echo "NM :$nom";
    $mail = $ligne["mail"]; echo "Mail :$mail <br>";
    }
    En =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $res3 = mysql_query ("SELECT ident, nom, mail FROM demandes WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) > date")  or die(mysql_error());
    while($ligne = mysql_fetch_assoc($res3))
    { 
       $ident     = $ligne["ident"]; echo "ID :$ident";
       $nom       = $ligne["nom"]; echo "NM :$nom";
       $mail      = $ligne["mail"]; echo "Mail :$mail <br>";
       $d_Email[] = $mail;
    }

Discussions similaires

  1. attendre 1 seconde entre deux fonctions
    Par urousseau dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2008, 19h14
  2. Conflit entre deux fonctions
    Par csseur22 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/12/2007, 14h07
  3. Conflit entre une fonction Delphi et une API ?
    Par [ZiP] dans le forum Delphi
    Réponses: 2
    Dernier message: 23/01/2007, 10h14
  4. [MySQL] Conflit entre deux fonction WHILE
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/11/2006, 18h15
  5. Réponses: 3
    Dernier message: 07/07/2006, 18h00

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