Jump to content

Requête SQL sur description courte/longue des produits


Recommended Posts

Bonjour,

Je gère un prestashop 1.5 sur un modeste 1and1 mutualisé.

Le site est finalisé, up and running.

 

Problème, les descriptions courtes des produits sont à la place des descriptions longues, et inversement. Cela est dû à une erreur lors de l'import CSV.

 

Il y a 400 références en lignes.

Chaque référence a de nombreux attributs mais c'est un autre sujet.

 

L'import a été très laborieux, avec un découpage des CSV, par fichiers de 45 références(lignes) puis import un à un, ca me fait mal de recommencer et j'ai peur de crasher mon catalogue produits et devoir recharger tout les attributs etc.. (65000 lignes de CSV excel en tout decoupé en plus de 50 fichiers)

 

Ayant déjà fait quelques requêtes SQL de "recherche et remplace" pour corriger des noms de produit directement sur PHPmyAdmin et étant très satisfait de l'efficacité de cette méthode, je me demandais s'il n'existait pas une requête SQL pour simplement inverser le champ desc longue avec le champ desc courte ?

 

Qu'en pensez vous ? Est ce faisable, ou dois je préférer réimporter via import CSV mon catalogue avec uniquement les colonnes id product / desc longue / des courte ?

 

D'avance merci,

Cdt,

Edited by jibi23 (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Si vous êtes développeur, je vous suggère de faire un petit script PHP qui le fait.

C'est assez simple et rapide ;)

 

Un select sur la table product_lang, un bon foreach, puis dedans, un buffer tampon ainsi que deux updates pour les descriptions inversées.

 

Voila voila !

Link to comment
Share on other sites

Bonjour

 

A partir de phpmyadmin une petite requete de mise à jour rapide et simple

 

update produits as po

set

description_c = (select description_l from produits as p1 where po.id_product = p1.id_product),

description_l = (select description_c from produits as p2 where po.id_product = p2.id_product)

 

 

c'est ce que j'essayerai après avoir fait une sauvegarde de la base

 

Bon courage

 

Julien.

Link to comment
Share on other sites

Bonsoir et merci du retour,

 

Ma formation de base est orientée webdesign HTML/CSS donc non je ne suis pas développeur au sens SQL et autres..

 

J'ai simplement l'habitude de manier PHPmyadmin avec 2 ou 3 requêtes SQL pour gagner du temps.

 

En tout cas, je vais sauvegarder la base et essayer la requête de Julien voir si cela marche ou non.

Je vous reviens dans les 2 cas.

 

Edit: Demande de précision car un doute me vient à la lecture de la requête, ce ne serait pas plutôt :

 

set
description_c = (select description_l from produits as p1 where po.id_product = p1.id_product),
description_l = (select description_c from produits as p1 where po.id_product = p1.id_product)

 

...ou peut-être que je n'ai pas la bonne lecture de cette requête.

 

Merci

Cdt

Edited by jibi23 (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

Je ne pense pas que la requête donnée puisse fonctionner mais il existe une fonction mysql pour faire ce que tu veux si les colonnes sont de même type. Ce qui est le cas avec description et description_short.

Je te donne la requête complète :

UPDATE ps_product_lang SET description=@tmp:=description, description=description_short, description_short=@tmp

 

Explication : On stocke la valeur de description dans un variable temporaire (@tmp). On dit que description=description_short et enfin on dit que description_short=la variable temporaire.

Edited by Vinum (see edit history)
Link to comment
Share on other sites

@jibi23 : tu veux faire quoi au juste ?

Rappel pour ceux qui se posent la question : le but est de faire ceci :

"je me demandais s'il n'existait pas une requête SQL pour simplement inverser le champ desc longue avec le champ desc courte ?"

Edited by jibi23 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...