Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/10/2011, 00h20   #1
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
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 :
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));
    }
  }
?>
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 19h56   #2
Membre confirmé
 
Avatar de bourvil
 
Inscription : juin 2002
Messages : 351
Détails du profil
Informations personnelles :
Localisation : Israël

Informations forums :
Inscription : juin 2002
Messages : 351
Points : 217
Points : 217
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 :
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));
    }
}
__________________
Franchement, je suis capable du meilleur comme du pire, mais, dans le pire, c'est moi le meilleur.
Coluche
bourvil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/10/2011, 20h24   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
ici la requête préparé est inutile pour le SELECT
sinon en 1 seule requête ça doit être faisable
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 23h04   #4
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
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
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 00h42   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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 :
while ($donnees1 = $req1->fetch()) {
Code :
foreach ($req1 as $donnees1) {
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 01h44   #6
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Aprés test, c'est SUPER !!
mille mercis
Christele
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h44.


 
 
 
 
Partenaires

Hébergement Web