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

WRInaute discret
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:
<?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
 
WRInaute impliqué
Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

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é ;)
 
WRInaute passionné
Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

Bonsoir,

Avec une boucle ?

un select et un wile ( update ) ?
 
WRInaute discret
Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

screuscreu a dit:
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:
$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...
 
WRInaute discret
Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

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.
 
WRInaute discret
Re: Copie de certaine donné d'une base Mysql a l'autre en PHP

Et bien j'ai remplacer:
Code:
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:
$effacer = mysql_query("DELETE FROM cybersp1_test2.products");
echo $effacer;

Et tout fonctionne maintenant! Youpi! :D
 
WRInaute accro
Code:
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:
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");
 
Discussions similaires
Haut