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

gemmenco - 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

cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 19 sept. 2012 à 00:49
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ghuysmans99
deutch36 74 Messages postés mardi 22 janvier 2008Date d'inscription 11 décembre 2012 Dernière intervention - 18 sept. 2012 à 11:36
0
Utile
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
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 18 sept. 2012 à 19:41
0
Utile
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
Utile
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
Utile
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
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 19 sept. 2012 à 13:40
0
Utile
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
Utile
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.