Insertion en double

ViPHP
ViPHP | 2291 Messages

23 juil. 2010, 14:48

Bonjour,

Je crée deux requêtes un SELECT et un INSERT comme ceci
foreach($p as $var)//-->Parcoure du tableau $p
      {

	   $h = date('H:i:s');            //-->Heure du message.
	   $ip = $_SERVER['REMOTE_ADDR']; //-->Ip de l'expediteur.

       //-->Création de la requete qui récupère l'id correspondante aux pseudos.
       $sqlid  = "SELECT id_user FROM users WHERE pseudo = '".$var."' ";

       //-->Execution de la requete.
       $sth    = $dbh->query($sqlid);
       $result = $sth->fetchAll();

       $row  = $result[0];
       $user = $row['id_user'];

       $sqlmp = "INSERT INTO message_mp
                        SET
                        mp_receveur   = :mp_receveur,
                        mp_expediteur = :mp_expediteur,
                        mp_titre      = :mp_titre,
                        mp_date       =  NOW(),
                        mp_time       = :mp_time,
                        mp_ip         = :mp_ip";


       $stmt = $dbh->prepare($sqlmp);

       $receveur   = $user;
       $expediteur = '1079';
       $titre      = $_POST['texte'];
       $mp_time    = $h;
       $mp_ip      = $ip;

       $valeur_mysql = array(':mp_receveur'   =>  $receveur,
                             ':mp_expediteur' =>  $expediteur,
                             ':mp_titre'      =>  $titre,
                             ':mp_time'       =>  $mp_time,
                             ':mp_ip'         =>  $mp_ip);


        $stmt->execute($valeur_mysql);
        $stmt->execute();

      }
Les requêtes fonctionne parfaitement sauf qu'il m'insert les données en double à chaque requête #-o

Qui pourrais me dire ou je fais une bêtise :?:
D'avance merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

23 juil. 2010, 14:55

pourquoi t'as 2 execute ?
$stmt->execute($valeur_mysql);
$stmt->execute();
je te conseil d'ailleurs de mettre ton $sqlmp hors boucle :wink:

ViPHP
ViPHP | 2291 Messages

23 juil. 2010, 14:57

je te conseil d'ailleurs de mettre ton $sqlmp hors boucle :wink:
Hors boucle non parce que je peux avoir plusieurs insertion à faire (suivant le nombre mp_receveur) :wink:
pourquoi t'as 2 execute ?
$stmt->execute($valeur_mysql);
$stmt->execute();
Parce que je suis un crétin :wink:
Merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 568 Messages

23 juil. 2010, 15:50

Parce que je suis un crétin :wink:
Haha, t'a égayer ma journée, merci :)

ViPHP
ViPHP | 2291 Messages

23 juil. 2010, 15:58

Parce que je suis un crétin :wink:
Haha, t'a égayer ma journée, merci :)
:lol:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.