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 :

insert into deux fois


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut insert into deux fois
    Bonjour,

    j'ai un insert into dans ma page paypal qui s'insert deux fois dans la base mysql :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    foreach($paypal_product['items'] as $key=>$p_item)
    					{
     
     
    					$buyerEmail = urldecode($httpParsedResponseAr["EMAIL"]); 
                        $buyerPrenom = urldecode($httpParsedResponseAr["FIRSTNAME"]);
    					$buyerNom = urldecode($httpParsedResponseAr["LASTNAME"]);
    					$buyerAdresse = urldecode($httpParsedResponseAr["SHIPTOSTREET"]);
    					$buyerCp = urldecode($httpParsedResponseAr["SHIPTOZIP"]);
    					$buyerVille = urldecode($httpParsedResponseAr["SHIPTOCITY"]);
    					$buyerPays = urldecode($httpParsedResponseAr["SHIPTOCOUNTRYNAME"]);
                        $transactionID = urldecode($httpParsedResponseAr["TRANSACTIONID"]); 
    					$transactionDate = urldecode($httpParsedResponseAr["TIMESTAMP"]); 
    					$transactionStatus = urldecode($httpParsedResponseAr["CHECKOUTSTATUS"]); 
    					$MontantPanier = urldecode($httpParsedResponseAr["AMT"]); 
    					$FraisDePort = urldecode($httpParsedResponseAr["SHIPPINGAMT"]); 
     
     
                        $insert_row = $conn->query("INSERT INTO commande
                        (
    					id_transaction,
    					date_transaction,
    					nom_client,
    					prenom_client,
    					email_client,
    					adresse_client,
    					cp_client,
    					ville_client,
    					pays_client,
    					id_produit,
    					name_produit,
    					qte_produit,
    					price_produit,
    					options_produit,
    					tx_panier,
    					total_panier,
    					payment_status
    					)
                        VALUES 
    					(
    					'".$transactionID."',
    					'".$transactionDate."',
    					'".$buyerNom."',
    					'".$buyerPrenom."',
    					'".$buyerEmail."',
    					'".$buyerAdresse."',
    					'".$buyerCp."',
    					'".$buyerVille."',
    					'".$buyerPays."',
    					'".$p_item['itm_code']."',
    					'".$p_item['itm_name']."',
    					'".$p_item['itm_qty']."',
    					'".$p_item['itm_price']."',
    					'".$p_item['itm_options']."',
    					'".$FraisDePort."',
    					'".$MontantPanier."',
    					'".$transactionStatus."'
    					)");
                        $insert_row->execute();
                        }
     
    					if($insert_row){
    						print 'Success!<br />'; 
    					}else{
    						die('Error : ('. $mysqli->errno .') '. $mysqli->error);
    					}
    et voici le print_r($paypal_product['items']);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Array
    (
        [0] => Array
            (
                [itm_name] => Transat Ile
                [itm_price] => 1630.00
                [itm_code] => transat-ile
                [itm_qty] => 1
                [itm_options] => Miroir.
            )
     
    )
    C'est pour inserer chaque produit par ligne dans une commande paypal.


    merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                        $insert_row = $conn->query("INSERT INTO commande...");
    ///...
                        $insert_row->execute();
    • $conn->query : exécute (sans préparation)
    • $conn->execute : exécute (aussi !)



    Il faut :
    • remplacer $conn->query par $conn->prepare
    • OU SUPPRIMER $insert_row->execute(); (le plus simple à faire dans ton cas, mais pas forcément le mieux *)



    * Le mieux est de PREPARER la requête UNE FOIS : donc de la préparer AVANT le foreach.

Discussions similaires

  1. [SQL-Server] insert into d'une table reliant deux tables(foreign key)
    Par evra76 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/07/2009, 10h38
  2. [PHP 4] Formulaire insertion de deux lignes à la fois
    Par aliwassem dans le forum Langage
    Réponses: 5
    Dernier message: 09/02/2009, 11h18
  3. Pb d'insertion deux fois avec une query d'un dataAdapter
    Par Contact2012 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/09/2008, 14h48
  4. Comment valider une de deux Option dans un Sql (Insert into)
    Par r.mehdi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/05/2008, 16h20
  5. [MySQL] Deux insert into?
    Par GYK dans le forum Langage SQL
    Réponses: 11
    Dernier message: 12/06/2006, 11h33

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