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 :

Pb avec un select


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 19
    Points : 12
    Points
    12
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    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

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Bonjour Fala fala,

    petite correction php essaies cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT a, nom, spe FROM a.operateurs
    A savoir lister les différents opérateurs.

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

    Cdlt.

Discussions similaires

  1. [INSERT][SELECT] insert avec un select imbriqué
    Par narmataru dans le forum SQL
    Réponses: 11
    Dernier message: 06/03/2013, 03h04
  2. Résultat commençant par un chiffre avec requête SELECT
    Par nicolas.pissard dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/04/2010, 13h31
  3. Changer la police avec un select, sans recharger la page
    Par Netoman dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/12/2004, 18h07
  4. Réponses: 2
    Dernier message: 22/03/2004, 10h50
  5. [struts][JSP][select] problème avec le select
    Par redge_touch dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/01/2004, 10h05

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