Remplacer le contenu d'une table dans phpMyAdmin [Résolu]

- 17 sept. 2012 à 19:07 - Dernière réponse :  gemmenco - 19 sept. 2012 à 16:07
[b]Bonjour,

Malgré ce que je croyais être une question basique, je réalise la difficulté à trouver une réponse.

Il s'agit donc tout simplement de remplacer une liste de mots (classement alphabétique)dans l'une de mes rubriques de site en passant par phpMyAdmin.

J'ai donc bien une table qui se nomme "products" et je me retrouve devant différentes actions possible (insérer, exporter, importer.... De l'autre côté, j'ai un fichier texte avec la nouvelle liste

Comment remplacer en un coup la liste en ligne par la nouvelle/b
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
19 sept. 2012 à 00:49
3
Merci
Avant de faire l'import, exécute un TRUNCATE TABLE tatable;
Évidemment, toutes les références aux IDs des anciennes lignes resteront...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question

Merci cs_ghuysmans99 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de cs_ghuysmans99
Messages postés
74
Date d'inscription
mardi 22 janvier 2008
Dernière intervention
11 décembre 2012
18 sept. 2012 à 11:36
0
Merci
Bonjour,

Je ne suis pas sur de saisir votre question.

Mais de ce que je comprends vous vous situez a l'interface d'administration de PHPmyadmin.

Insérer va insérer du contenu a la table comme son nom l'indique.
Exporter va permettre d'exporter la base (pratique pour sauvegarder)
Importer va permettre de recharger la sauvegarde dans la base

Ne sachant pas comment est structuré votre table et vos listes.
Mais je pencherai pour un insert avec un id unique different ou un update de l'id existant.
Commenter la réponse de deutch36
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
18 sept. 2012 à 19:41
0
Merci
Je crois comprendre que tu veux simplement remplacer les lignes d'une table par celles issues d'un fichier texte
qui ne contient que des mots (inutile de les classer au préalable, tu peux les extraire de la table avec un SELECT ... ORDER BY).

1) Remplace "'" par "''" dans tout ton fichier
2) Mets au début de ton fichier "INSERT INTO `tatable`(champtxt) VALUES ",
3) Mets au début de chaque ligne "('" et à la fin de chaque ligne "'), "

J'espère t'avoir aidé, mais n'hésite pas à le dire si je suis à côté de la plaque...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
0
Merci
ghuysmans99, tu as parfaitement compris ma demande, elle finalement assez basique. Il s'agit bien de remplacer un contenu en base par un autre.

Je dispose bien d'un fichier csv contenant la nouvelle liste de mots.

En fait, je suis parvenu à créer une nouvelle base en pompant le code sql de mon archive et en utilisant la fonction "Importer".

Il a fallu auparavant que je place une deuxième colonne à gauche de ma liste dans le fichier .csv et d'y insérer un séparateur ";"

L'importation a fonctionné en mode "sql via load data" mais elle a ajouté la nouvelle liste de mots à l'ancienne au lieu de la remplacer. J'avais pourtant bien coché "Remplacer les données de la table avec le fichier"

Bref, une telle complexité pour effectuer un opération aussi simple est un peu anachronique. Je teste encore...
Commenter la réponse de gemmenco
0
Merci
Un truncate sera pour le prochain cours, un peu compliqué pour moi.

Sinon, je suis parvenu à importer ma table et j'ai donc supprimé l'ancienne liste manuellement.

Les items de l'ancienne liste était numérotés à partir de 1,2,3...
mais la nouvelle liste, même après suppression de l'ancienne, a conservé la numérotation à partir de 365, 364 , 366... soit le numéro affiché après la fin de l'ancienne liste...

Bon, ça n'a pas l'air d'affecter le résultat mais je reconnais que c'est du bricolage
Commenter la réponse de gemmenco
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
19 sept. 2012 à 13:40
0
Merci
TRUNCATE TABLE remet le compteur à zéro...
Par contre, ce n'est peut-être pas une bonne idée de vouloir le faire :
si tu avais des tables liées (donc des tables qui utilisent ce n°) et que
ta liste venait à changer, tu ne verrais pas que tes données sont corrompues.

Aucun problème à utiliser des numéros qui ne se suivent pas ou qui
ne commencent pas à zéro, ils sont de toute façon stockés sur des (U)INT
(4 octets non signés, donc maximum 2^32)

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
0
Merci
Merci pour ces précisions toujours utiles !
Commenter la réponse de gemmenco

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.