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
deutch36
Messages postés73Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention11 décembre 20123 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.
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 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
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
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
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 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