Remplacer INSERT par UPDATE

Résolu
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013 - 18 déc. 2004 à 22:17
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 21 déc. 2004 à 19:31
Salut,

j'ai fait une requete pour avoir tout les enregistrements ayant le champ act egal à 2

SELECT `id` FROM `tab` WHERE `act` = 2 


j'ai sauvegarde le tout dans un fichier *.sql

j'aimerias avoir un petit code php qui fera en sorte de changer dans mon fichier sql tout les lignes :

INSERT INTO `tab` VALUES (x);


par
UPDATE `tab` SET `act` '2' WHERE `id` 'x';


et puis lancer le nouveau fichier pour mettre a jour ma table sur mon hebergeur.

Merci.
------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :
http://www.elatlasclub.fr.st

9 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 déc. 2004 à 19:31
Tu peux cliquer sur "réponse acceptée" stp ?

merci beaucoup ;-)

a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 déc. 2004 à 22:02
Salut ;-)

Une fois ton fichier sql ouvert avec PHP, mets le dans une variable (ici j'appelerai cette variable $sql pour l'exemple).

Voici ce que ça donne :

$sql=preg_replace('`\INSERT INTO `tab` VALUES \((.+?)\);`','UPDATE `tab` SET `act` = \'2\' WHERE `id` = \'$1\';',$sql);

ensuite tu sauvegardes ton fichier sql

a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
0
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
20 déc. 2004 à 21:51
Merci Antomicro.

je vais l'essayer ..
------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :
http://www.elatlasclub.fr.st
0
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
20 déc. 2004 à 23:44
Ca donne cette erreur :

Warning: Unknown modifier 't' in c:\program files\easyphp\www\test\sql\test.php on line 6

------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :
http://www.elatlasclub.fr.st
0

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

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 déc. 2004 à 23:50
Bon attends je teste ça en local ;-)

à tout à l'heure

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 déc. 2004 à 23:52
Bon ok c'est normal, j'avais zappé les caractères de début et fin d'expression qui étaient contenus dans la requête, bref voici l'expression régulière corrigée :

$sql=preg_replace('#\INSERT INTO `tab` VALUES \((.+?)\);#','UPDATE `tab` SET `act` = \'2\' WHERE `id` = \'$1\';',$sql);

a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
0
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
21 déc. 2004 à 01:04
Non le code ne remplace rien ...

tous les lignes sont telles .... avec INSERT et le reste

par de UPDATE ...

voila des lignes pour faire un test :

INSERT INTO `sites` VALUES (176);

INSERT INTO `sites` VALUES (192);

INSERT INTO `sites` VALUES (196);

INSERT INTO `sites` VALUES (197);

INSERT INTO `sites` VALUES (200);

INSERT INTO `sites` VALUES (204);

INSERT INTO `sites` VALUES (209);

INSERT INTO `sites` VALUES (211);

INSERT INTO `sites` VALUES (213);

INSERT INTO `sites` VALUES (216);

INSERT INTO `sites` VALUES (217);

INSERT INTO `sites` VALUES (218);

INSERT INTO `sites` VALUES (219);


------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :
http://www.elatlasclub.fr.st
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 déc. 2004 à 10:06
Normal, tu me dis au début "INSERT INTO `tab` VALUES (x);"

et ensuite "INSERT INTO `sites` VALUES (219);"

bref ça donne ça :

$sql=preg_replace('#\INSERT INTO `sites` VALUES \((.+?)\);#','UPDATE `tab` SET `act` = \'2\' WHERE `id` = \'$1\';',$sql);

et ça fonctionne parfaitement chez moi...

a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
0
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
21 déc. 2004 à 19:27
Mille excuses Anthomicro :blush)

Je n'ai pas fait attention.

Mille merci
:big)

------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :
http://www.elatlasclub.fr.st
0
Rejoignez-nous