[PREMIUM][v2.9][administrer/import.php] requête SQL INSERT inversion de colonnes

7 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

En étudiant la faisabilité d'un traitement de masse import/update par le script /administrer/import_produits.php, j'ai lu ceci :

$requete = "INSERT INTO ".$_POST['nomtable']." (

reference

, nom_".$_SESSION['langue']."

, prix

, tva

, promotion

, poids

, points

, image1

, image2

, marque

, reference_fournisseur

, descriptif_".$_SESSION['langue']."

, etat

, date_insere

, date_maj

)

VALUES (

'".$reference."'

, '".$nom."'

, '".$prix."'

, '".$tva."'

, '".$promotion."'

, '".$poids."'

, '".$point."'

, '".$marque."'

, '".$reference_fournisseur."'

, '".$image1."'

, '".$image2."'

, '".$descriptif."'

, '".$etat."'

, now()

, now()

)";

Les colonnes image1, image2, marque, reference_fournisseur prennent resectivement les valeurs $marque, $reference_fournisseur, $image1 et $image2.

Est-ce une erreur corrigée dans les versions ultérieures ?

DDD

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

J'ai la version 3.x et voici mon code ...

A priori cela n'est pas corrigé !!!

			echo "valeur de nom : $nom<br />";


			if (!empty($nom)) {


			$requete = "INSERT INTO ".$_POST['nomtable']." (

			reference

			,  nom_".$_SESSION['langue']."

			,  prix

			,  tva

			,  promotion

			,  poids

			,  points

			,  image1

			,  image2

			,  marque

			,  descriptif_".$_SESSION['langue']."

			,  etat

			, date_insere

			, date_maj

			) 

			VALUES (

			'".$reference."'

			, '".$nom."'

			, '".$prix."'

			, '".$tva."'

			, '".$promotion."'

			, '".$poids."'

			, '".$point."'

			, '".$marque."'

			, '".$image1."'

			, '".$image2."'

			, '".$descriptif."'

			, '".$etat."'

			, now()

			, now()

			)";

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Il faut aussi noter que le fichier CSV exemple est faux je crois :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

La documentation est forcément bonne car un projet commence toujours par la rédaction et le coding vient après !

Donc, en v2.9, il faut également changer

$image1 = $liste[$i+9];

$image2 = $liste[$i+10];

$marque = addslashes($liste[$i+11]);

$reference_fournisseur = addslashes($liste[$i+12]);

en
$marque = addslashes($liste[$i+9]);

$reference_fournisseur = addslashes($liste[$i+10]);

$image1 = $liste[$i+11];

$image2 = $liste[$i+12];

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

La documentation est forcément bonne car un projet commence toujours par la rédaction et le coding vient après !

En théorie oui, chargez la base avec le fichier exemple csv founit :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

En théorie oui, chargez la base avec le fichier exemple csv founit :)
Le fichier exemple_prod.csv contient
1;0;REF1;Nom du produit en FR;123;19.6;0;100;0;Sony;REF CONS 1;image1.gif;image2.gif; ceci est un descriptif du produit;1

1;0;REF2;Nom du produit en FR;123;19.6;0;100;0;Sony;REF CONS 1;image1.gif;image2.gif; ceci est un descriptif du produit;1

2;0;REF3;Nom du produit en FR;123;19.6;0;100;0;Sony;REF CONS 1;image1.gif;image2.gif; ceci est un descriptif du produit;1

2;0;REF4;Nom du produit en FR;123;19.6;0;100;0;Sony;REF CONS 1;image1.gif;image2.gif; ceci est un descriptif du produit;1

2;0;REF5;Nom du produit en FR;123;19.6;0;100;0;Sony;REF CONS 1;image1.gif;image2.gif; ceci est un descriptif du produit;1

et le script d'import contient
$cat1_id = $liste[$i];

$cat2_id = $liste[$i+1];

$reference = addslashes($liste[$i+2]);

$nom = addslashes($liste[$i+3]);

$prix = $liste[$i+4] * (1 + $liste[$i+5]/100);

$prix = str_replace(",",".",$prix);

$tva = str_replace(",",".",$liste[$i+5]);

$promotion = str_replace(",",".",$liste[$i+6]);

$poids = str_replace(",",".",$liste[$i+7]);

$point = str_replace(",",".",$liste[$i+8]);

$image1 = $liste[$i+9];

$image2 = $liste[$i+10];

$marque = addslashes($liste[$i+11]);

$reference_fournisseur = addslashes($liste[$i+12]);

$descriptif = addslashes($liste[$i+13]);

$etat = intval($liste[$i+14]);

donc la variable $image1 contient la marque, $image2 la réf constructeur, $marque l'image miniature et $reference_fournisseur = l'image zoom.

et

$requete = "INSERT INTO ".$_POST['nomtable']." (

reference

, nom_".$_SESSION['langue']."

, prix

, tva

, promotion

, poids

, points

, image1

, image2

, marque

, reference_fournisseur

, descriptif_".$_SESSION['langue']."

, etat

, date_insere

, date_maj

)

VALUES (

'".$reference."'

, '".$nom."'

, '".$prix."'

, '".$tva."'

, '".$promotion."'

, '".$poids."'

, '".$point."'

, '".$marque."'

, '".$reference_fournisseur."'

, '".$image1."'

, '".$image2."'

, '".$descriptif."'

, '".$etat."'

, now()

, now()

)";

et tout est importé correctement mais la lecture du script php est troublante ! Les 4 variables ne contiennent pas ce que suggère leur nom... Est-ce que le reste de l'application est aussi confusionnel ? B)

Personnellement, j'ai corrigé mon script afin d'améliorer la maintenance et d'implémenter l'import par update des références existantes !

J'ai vu un fichier xml contenant apparemment un export de la table produit.

Existe-t-il un import à partir du xml ?

Si non, est-ce en projet ?

Ce serait très utile dans le cadre de transmission de données B2B !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping