Remplacer le contenu d'une table dans phpMyAdmin

Résolu
gemmenco - 17 sept. 2012 à 19:07
 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

7 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
19 sept. 2012 à 00:49
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
3
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
18 sept. 2012 à 11:36
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.
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
18 sept. 2012 à 19:41
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
0
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...
0

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

Posez votre question
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
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
19 sept. 2012 à 13:40
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
0
Merci pour ces précisions toujours utiles !
0
Rejoignez-nous