Vous n'êtes pas identifié(e).
Bonjour à tous;
Voilà , j'ai écrit un script php qui consiste à insérer les enregistrements depuis une table appelée table1 vers une autre appelée table2 sachant que la table1 est dans la base de données "moodle" et la table2 est dans la base de données "moodle_purge". à la première exécution, la table2 est remplie, mais quand j'ajoute d'autre enregistrements à ma première table manuellement (c-à-d dans phpmyadmin) et que je tente une deuxième exécution de mon script, je remarque que ma deuxième table reste telle qu'elle est c-à-d que les nouveaux enregistrements ne s'insèrent pas.
Voici mon script:
/********création de la table2 de même structure que table1 dans la base de données moodle_purge************/
$sql_cr= "CREATE TABLE IF NOT EXISTS table2 LIKE `moodle`.`table1` ";
$res_sql_cr=mysql_query($sql_cr);
if($res_sql_cr==FALSE)
{die(mysql_error());
mysql_close();}
$sql_ins= "INSERT INTO table2 as (SELECT * FROM `moodle`.`table1` WHERE `TABLE1`.`id` >=$MIN AND `TABLE1`.`id` <=$x1 )";/*$MIN et $x1 changent à chaque nouvelle insertion dans la lable1*/
$res_sql_ins=mysql_query($sql_ins);
if($res_sql_ins==FALSE)
{die(mysql_error());
mysql_close();}
?>
Pouvez-vous me dire qu'est ce qui manque à celui-ci? Merci d'avance.
Hors ligne
Bonjour,
La syntaxe n'est pas la bonne en effet.
admettons la table table1 avec pour noms de colonnes (t1_id1,t1_c1,t1_c2,t1_c3), et la table table2 avec pour noms de colonnes (t2_id2,t2_c1,t2_c2,t2_c3)
Pour insérer la table 2 dans la table 1:
A condition que le typage des colonnes reste compatible entre elles.
Dernière modification par Jc (14-10-2014 19:10:13)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
A condition que le typage des colonnes reste compatible entre elles.
La table de destination étant issue de
la condition devrait forcément être remplie.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour ;
Merci Jc et Infantimigulo pour vos réponses.
La syntaxe n'est pas la bonne en effet.
admettons la table table1 avec pour noms de colonnes (t1_id1,t1_c1,t1_c2,t1_c3), et la table table2 avec pour noms de colonnes (t2_id2,t2_c1,t2_c2,t2_c3)
Pour insérer la table 2 dans la table 1:
$sql="INSERT INTO TABLE1 (t1_c1,t1_c2,t1_c3) SELECT t2_c1,t2_c2,t2_c3 FROM TABLE2 WHERE .... ";
CODE: TOUT SÉLECTIONNER
A condition que le typage des colonnes reste compatible entre elles.
J'ai corrigé la requête comme vous m'avez dit, mais Mysql me retourne une erreur Table 'table2' already exists , alors j'ai modifié la requête comme ceci:
Mysql m'affiche toujours la même chose.
la condition devrait forcément être remplie.
J'ai inséré dans ma table1 un nombre important d'enregistrements donc la condition est remplie.
Dernière modification par djimy_cartel (16-10-2014 11:39:35)
Hors ligne
"INSERT INTO table2 IF EXISTS (SELECT * FROM `moodle`.`table1` WHERE `table1`.`id` >=$VAL_MIN AND `table1`.`id`<=$dx1) ";//la structure des tables est la même
Cette requête n'est pas bonne et n'a rien à voir avec ce que l'on vous à dit.
J'ai corrigé la requête comme vous m'avez dit
On peut savoir à quoi cela corresponds pour vous? par ce que j'ai un sérieux doute.
CREATE TABLE IF NOT EXISTS table2 LIKE `moodle`.`table1`
En sachant que ce code aussi n'est pas bon. Je vous invite à consulter la doc MySQL correspondant à la version de votre serveur.
Bonne journée.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne