Importer donnée d'1 base et inserer ds autre

smile88 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
 fiu -
Bonsoir,
svp je veux importer des données d'une base données et l'inserer dans une autre base
j'ai essayé ce code mais il ne marche pas
<?php
include('salome.php');
$LINK1 = mysql_connect('localhost', 'user_iga', 'azert'); 
  mysql_select_db('iga1', $LINK1);
$rs = mysql_query("select PROF_SALOME from iga1.profil where NOM_PROF ='$prof'", $LINK1); 
  $sql = "insert into salome_bd.PERSONNE_GROUPE values ('select id_personne from PERSONNE where login_personne = '$login'),'$rs',NULL)";
  $requete = mysql_query($sql) or die( mysql_error() ) ;
?>

5 réponses

fiu
 
Salut,

Le mot-clé VALUES sert à énumérer les valeurs à insérer. Si ces valeurs à insérer sont le résultat d'un SELECT, la requête est alors simplement
INSERT INTO table SELECT ...
dans ton cas, ta requête devrait ressembler à
"insert into salome_bd.PERSONNE_GROUPE select id_personne from PERSONNE where login_personne = '$login'"

attention toutefois : les colonnes renvoyées par le select doivent correspondre à ce que tu cherches à insérer
ex: si tu ne veux alimenter que 3 colonnes d'une table qui en comporte douze, tu dois faire un un truc du genre : INSERT into bidules(bidule_id, compte, cat) SELECT user_id, nb_interventions, '5' from users where class='ADMIN'
0
smile88 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   3
 
j'ai rien compris
moi je veux inserer dans salome_bd.PERSONNE_GROUPE(personne_id_personne, groupe_id_groupe) en sachnt que /
*la variable personne_id_groupe c'est l'attibut id_personne de la table salome_bd.PERSONNE (meme BD)
* La variable groupe_id_groupe c'est l'attribut PROF_SALOME de la table iga1.profil (autre BD)
0
fiu
 
grace à ta reponse on sait enfin quelles sont les valeurs à inserer : id_personne d'une part et prof_salome d'autre part

ta requete est donc :
insert into salome_bd.PERSONNE_GROUPE(personne_id_personne, groupe_id_groupe) select id_personne, PROF_SALOME from salome_bd.PERSONNE , iga1.profil where le_critere_de_jointure_qui_va_bien and login_personne = '$login'

=> le select renvoie n lignes de 2 colonnes en provenance de 2 tables jointes grace au critère que toi seul connais, chacune de ces tables étant dans 2 databases différentes.
=> ces n lignes de 2 colonnes renvoyées sont insérées dans les colonnes personne_id_personne & groupe_id_groupe de la table personne_groupe

cadeau bonus: un peu de littérature sur le insert into
0
smile88 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   3
 
jai fait comme tu as dis voila le code mais le problème persiste

include ('salome.php');
 //execution requete sql_salome :

  $sql3 = "insert into PERSONNE (id_personne, login_personne, nom_personne, prenom_personne, email_personne, mot_de_passe) values (NULL,'$login','$nom','$prenom','$email','$pwd')";
  $requete3 = mysql_query($sql3) or die( mysql_error() ) ;
$sql4="insert into salome_bd.PERSONNE_GROUPE(personne_id_personne, groupe_id_groupe) select id_personne, PROF_SALOME from salome_bd.PERSONNE , iga1.profil where login_personne = '$login',NOM_PROF ='$prof'";
 $requete4 = mysql_query($sql4) or die( mysql_error() ) ;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiu
 
normal, dans $sql4 il n'y a pas de jointure entre tes deux tables. qui plus est, tes critères dans le where (là où devrait se trouver la jointure) sont séparés par des virgules alors qu'il faut les séparer par des AND

il te faut trouver deux attributs de chacune de ces deux tables qui puissent être mis en correspondance et qui puissent dans tous les cas matérialiser une relation entre ces deux tables (ex: le code postal dans le fichier client et dans le fichier villes ; le code article entre le fichier articles et le fichier facturation)

et avant d'écrire ton prochain post, il serait préférable que tu te replonges un peu dans l'algèbre relationnel et la syntaxe de SQL
...ou d'ignorer totalement ces aspects mais alors il faudrait présenter le détail des tables que tu utilises et le but que tu cherches à atteindre
0