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 :

mise a jour de deux tables avec PDO [PDO]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut mise a jour de deux tables avec PDO
    Bonjour,
    Je sais ça va hurler de rire ... mais ça marche
    Juste je suis certaine qu'il y avait une version enfantine que je ne trouve pas.
    Merci d'avance pour vos idées

    deux Tables
    apod_cp contient cp et ville
    et
    apoc_cli contient entre autre cp et ville (ville actuellement vide) je veux charger cette valeur.
    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
     
    <?php
     try
      {
       $bdd = new PDO('mysql:host=localhost;dbname=jplyne', 'root', '');
       $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      }
      catch(Exception $e)  { die('Erreur : '.$e->getMessage());}
      $req = $bdd->prepare("SELECT * FROM apod_cli ");
      $req->execute();
      while ($donnees = $req->fetch())
       {
       $CPCli=$donnees['codepost'];
       $LidCli=$donnees['id'];
       $LaVille="";
       $req1 = $bdd->prepare("SELECT * FROM apod_cp WHERE cp= :CPCli ");
       $req1->execute(array(':CPCli' => $CPCli));
       while ($donnees1 = $req1->fetch()) {$LaVille=$donnees1['ville'];}
       if ($LaVille!="")
        {
         $Lupdate = $bdd->prepare("UPDATE apod_cli SET laville = :LaVille  WHERE id= :LidCli  ");
         $Lupdate->execute(array( ':LaVille' =>  $LaVille, ':LidCli' =>   $LidCli));
        }
      }
    ?>

  2. #2
    Membre éclairé Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Par défaut
    Pq fais tu 3 query?
    qu'est-ce qui ne marche pas?
    si les 2 tables sont liees par le code postal, pq ne pas faire simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $req1 = $bdd->prepare("SELECT * FROM apod_cp ");
    $req1->execute();
    while ($donnees1 = $req1->fetch()) {
       $LaVille=$donnees1['ville'];
       $CPCli=$donnees1['codepost'];
       if ($LaVille!="")
        {
         $Lupdate = $bdd->prepare("UPDATE apod_cli SET laville = :LaVille  WHERE codepost= :CPCli");
         $Lupdate->execute(array( ':LaVille' =>  $LaVille, ':CPCli' =>   $CPCli));
        }
    }

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    ici la requête préparé est inutile pour le SELECT
    sinon en 1 seule requête ça doit être faisable

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci de vos réponses,
    Mais en partant de la table Code Postal/ville
    si je fais un update de tout les clients il va parcourrir tout le fichier client

    Bon je vais tester, cela m'intéresse merci,
    je vous tiens au courant !
    Christele

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par christele_r Voir le message
    Merci de vos réponses,
    Mais en partant de la table Code Postal/ville
    si je fais un update de tout les clients il va parcourrir tout le fichier client

    Bon je vais tester, cela m'intéresse merci,
    je vous tiens au courant !
    Christele
    normalement tu peux faire un WHERE IN

    ps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($donnees1 = $req1->fetch()) {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ($req1 as $donnees1) {

  6. #6
    Invité
    Invité(e)
    Par défaut
    Aprés test, c'est SUPER !!
    mille mercis
    Christele

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

Discussions similaires

  1. [MySQL-5.5] Problème avec une requête de mise à jour entre deux tables
    Par hermes1383 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/11/2014, 10h52
  2. [MySQL] mise a jour sur une table avec MD5
    Par Invité dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/11/2010, 11h58
  3. [MySQL] mise a jour de deux tables mysql
    Par Invité dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/09/2010, 11h29
  4. MISE A JOUR de grosses tables avec index
    Par soph35 dans le forum SAS Base
    Réponses: 6
    Dernier message: 26/03/2010, 11h03
  5. [MySQL] Requete de mise a jour sur deux table
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/02/2010, 10h17

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