RESOLU Copie de certaine donné d'une base Mysql a l'autre en PHP

willpower
WRInaute discret
WRInaute discret
 
Messages: 208
Inscription: 15 Mar 2007

RESOLU Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mar Juin 09, 2009 20:54

Hello a tous,

Et bien voici ce que j'essaie de faire: J'ai 2 base de donner sur le meme serveur, la premiere est celle d'une vieille cyberboutique mais elle a l'avantage d'etre mise a jours avec notre systeme informatique(Ce travail a été fait par le concepteur du logiciel), la 2e est la base de donne de ma nouvelle cyberboutique(J'utiliserrai probablement OSC comme base). J'aimerais pouvoir encore avoir la possibilité de faire des mise a jour a partir de mon logiciel informatique et donc je pensais essayer de creer un CRON JOB qui copirrait certaine donné de la BASE1 vers la BASE2, mais bon n'étant pas un pro de PHP j'ai un peu de difficulté.

Voici un exemple:

J'ai une base de donné appelé BASE1 qui contient plusieurs table dont une appelé ''produits'' qui est comme ca:
numero I description I prix I photo I page I
102 I pomme verte I 2.00$ I pomme.jpg I 2 I
105 I orange I 3.00$ I orange.jpg I 2 I
109 I peche I 1.00$ I peche.jpg I 8 I

Et J'ai une base de donné appelé BASE2 qui elle contient plusieurs table dont une appelé ''storeproducts'' qui est comme ca:
item I desc I picture I price I


J'aimerais envoyer toute les données de la colonne ''numero'' de la BASE1 a la colonne ''item'' de la BASE2. (meme chose pour ce qui de ''description'' VS ''desc'', ''prix'' VS ''price'' et ''photo'' VS ''picture''. De plus puisque cette BASE2 serait mise a jour quotidiennement il faudrait pas que que les items soi seulement rajouter mais bien remplacer pour eviter les doubles.

J'ai donc essayer de commencer, mais je ne sais vraiment pas trop quel technique je devrais utiliser:
Code: Tout sélectionner
<?php
$resource1 = mysql_connect(localhost, cybersp1_test, XXXXXXXXXX);
$db = mysql_select_db(cybersp1_test, $resource1)
or die ("Couldn't select database.");
$resource2 = mysql_connect(localhost, cybersp1_test, XXXXXXXXXX);
$db2 = mysql_select_db(cybersp1_test2, $resource2)
or die ("Couldn't select database2.");
//////////////////////////////////DEBUT CODE DE COPIE DE LA BASE/////////////////////////////////////



///////////////////////////////////FIN CODE DE COPIE DE LA BASE//////////////////////////////////////
mysql_close($resource1);
mysql_close($resource2);
?>



Merci de votre aide. :D
Dernière édition par willpower le Mer Juin 10, 2009 1:59, édité 2 fois.


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mar Juin 09, 2009 21:06

Je vais répondre franchement.

Je n'aime pas quand on demande sur WRI de faire à sa place... au moins essayer un code pour que l'on puisse corriger. De plus cela te feras progresser.

Je serais ravi de donner mon avis/aide lorsque tu auras mis un peu plus de volonté ;)


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mar Juin 09, 2009 21:33

Bonsoir,

Avec une boucle ?

un select et un wile ( update ) ?

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mar Juin 09, 2009 22:02

Je plussoie screuscreu.

Une piste donc. Pour mettre en place, tu lis la doc :
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

willpower
WRInaute discret
WRInaute discret
 
Messages: 208
Inscription: 15 Mar 2007

Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mar Juin 09, 2009 23:17

screuscreu a écrit:Je vais répondre franchement.

Je n'aime pas quand on demande sur WRI de faire à sa place... au moins essayer un code pour que l'on puisse corriger. De plus cela te feras progresser.

Je serais ravi de donner mon avis/aide lorsque tu auras mis un peu plus de volonté ;)

T'a raison... voici donc un essai que j'inserrais dans mon code precedent! :wink:


Code: Tout sélectionner
$db;
$db2;
mysql_query("UPDATE cybersp1_test2.products SET item = NULL);
mysql_query("UPDATE cybersp1_test2.products SET desc = NULL);
mysql_query("UPDATE cybersp1_test2.products SET picture = NULL);
mysql_query("UPDATE cybersp1_test2.products SET price = NULL);

$result = mysql_query("SELECT * FROM cybersp1_test.produits");
while($row = mysql_fetch_array($result))
  {
  $item = $row['numero'] ;
  $desc = $row['description'] ;
  $picture = $row['prix'] ;
  $price = $row['photo'] ;


mysql_query("INSERT INTO cybersp1_test2.products (item, desc, picture, price) VALUES ('$item', '$desc', '$picture', '$price')");
  }




Bon j'ai pas encore essayer...mais je vous tiens au courant...

willpower
WRInaute discret
WRInaute discret
 
Messages: 208
Inscription: 15 Mar 2007

Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mer Juin 10, 2009 1:21

Bon ca me donne une erreur...mais pas une erreur php...une erreur 500.

J'ai donc fait des tests et si j'enleve:
mysql_query("UPDATE cybersp1_test2.products SET item = NULL);
mysql_query("UPDATE cybersp1_test2.products SET desc = NULL);
mysql_query("UPDATE cybersp1_test2.products SET picture = NULL);
mysql_query("UPDATE cybersp1_test2.products SET price = NULL);

et bien ca fonctionne...ca copy mes donnee!!! :D

Mais bon je dois maintenant trouver comment effacer mes colones dans la 2 base avant le transfert.

willpower
WRInaute discret
WRInaute discret
 
Messages: 208
Inscription: 15 Mar 2007

Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mer Juin 10, 2009 1:59

Et bien j'ai remplacer:
Code: Tout sélectionner
mysql_query("UPDATE cybersp1_test2.products SET item = NULL);
mysql_query("UPDATE cybersp1_test2.products SET desc = NULL);
mysql_query("UPDATE cybersp1_test2.products SET picture = NULL);
mysql_query("UPDATE cybersp1_test2.products SET price = NULL);


Par:
Code: Tout sélectionner
$effacer = mysql_query("DELETE FROM cybersp1_test2.products");
echo $effacer;


Et tout fonctionne maintenant! Youpi! :D


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Re: RESOLU Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mer Juin 10, 2009 9:56

J'ai pas tout suivi mais si ça fonctionne tant mieux ;)
Bonne continuation à toi !

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Re: RESOLU Copie de certaine donné d'une base Mysql a l'autre en PHP

Message le Mer Juin 10, 2009 10:00

Code: Tout sélectionner
mysql_query("UPDATE cybersp1_test2.products SET item = NULL);
mysql_query("UPDATE cybersp1_test2.products SET desc = NULL);
mysql_query("UPDATE cybersp1_test2.products SET picture = NULL);
mysql_query("UPDATE cybersp1_test2.products SET price = NULL);


Ici, ton erreur est simpliste. Tu ne ferme pas les guillemets. Le code qui fonctionne :
Code: Tout sélectionner
mysql_query("UPDATE cybersp1_test2.products SET item = NULL");
mysql_query("UPDATE cybersp1_test2.products SET desc = NULL");
mysql_query("UPDATE cybersp1_test2.products SET picture = NULL");
mysql_query("UPDATE cybersp1_test2.products SET price = NULL");


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: erestrebian et 0 invités