Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 13/07/2011, 12h38   #1
Invité de passage
 
Inscription : août 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 19
Points : 0
Points : 0
Par défaut Pb avec un select

Bonjourà tous,

J'aurais besoin de votre aide pour une requête SQL en php.

Je vous plante le décor : j'ai une cinquantaine de bases de données contenant toutes une table "operateurs" qui contient notamment les colonnes "nom" et "spe".

Je souhaite dans une base de données à part, dans la table "chirurgiens" regrouper l'ensemble des tables "operateurs" (enfin seulement les colonnes "nom" et "spe") en ajoutant en première colonne le nom de la base de laquelle sont extraites les colonnes.
Par exemple dans la base BDD1 j'avais dans la table operateurs une ligne : MARTIN || Gynéco
Je souhaite dans ma nouvelle base avoir : BDD1 || MARTIN || Gynéco

J'ai donc écris comme code :


Code :
1
2
3
4
5
6
7
8
9
mysql_select_db('bddglobale', $connect) or die(mysql_error());
 
 
$bdd = array('a','b','c','d','e');
 
for ($i=0;$i<count($bdd);$i++){
	$req1 = "INSERT INTO chirurgiens('Etab', 'nom', 'spe') SELECT ('".$bdd[$i]."'), 'nom', 'spe' FROM ".$bdd[$i].".operateurs";
	mysql_query($req1) ;
}

Lorsque je lance cela, je n'ai que la première ligne de chaque table operateurs qui est mise dans ma nouvelle base. Pourquoi ?
Je n'arrive pas à voir où serait l'erreur...

Pour information j'utilise WAMP.

Je vous remercie tous d'avance!

Fala fala
Configuration: Windows Vista / Firefox 5.0
Fala fala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 14h15   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

je n'avais jamais vu une syntaxe avec insert qui comporte un select, es tu sure que c'est possible?

Sinon tu pourrais exécuter un select pour chaque table, et lorsque tu parcours ton résultat tu fait un insert dans ta table. Par contre je pense qu'il te faudrait un identifiant unique pour chaque élément que tu enregistres dans ta base (ca pourrait peut être résoudre ton problème):

ex: 1 || BDD1 || MARTIN || Gynéco
2 || BDD1 || MARCK || Gynéco
3 || BDD2 || JACK || Gynéco

Il serait même préférable que tu crées une table qui répertorie toutes tes tables:

ex: 1 || BDD1
2 || BDD2
...

Ce qui te permettrait d'établir par la suite un lien dans ton autre table en mettant:

ex: 1 || 1|| MARTIN || Gynéco
2 || 1|| MARCK || Gynéco
3 || 2|| JACK || Gynéco

en espérant t'avoir aidé...
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 14h45   #3
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 34
Points : 31
Points : 31
Bonjour Fala fala,

petite correction php essaies cela :

Code :
1
2
3
4
foreach ($bdd as $sVal){
	$req1 = "INSERT INTO chirurgiens (`Etab`, `nom`, `spe`) SELECT ".$sVal.", nom, spe FROM ".$sVal.".operateurs";
	mysql_query($req1) ;
}
Vérifie la seconde partie de cette requête sql, fait-elle déjà ce que tu souhaites:
Code :
SELECT a, nom, spe FROM a.operateurs
A savoir lister les différents opérateurs.

@Retrokiller069
Citation:
je n'avais jamais vu une syntaxe avec insert qui comporte un select, es tu sûr que c'est possible?
Heureusement oui .

Cdlt.
cycyand1 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h04.


 
 
 
 
Partenaires

Hébergement Web