Creation d'un fichier csv lors de la validation de la commande

42 messages dans ce sujet

Posté(e) · Signaler ce message

salut c'est encore moi j'ai un probleme au niveau de ma requete mais je ne vois pas se qui cloche

voila la requete :

	$select = "SELECT pc.id, pc.id_utilisateur, pc.email, pc.client_info1, pc.client_info2, pc.montant, pc.montant_ht, pc.totalt_produit, pc.paiement, pc.cout_transport, pc.total_tva, pc.poids, pc.tva, pc.zone, pca.commande_id, pca.produit_id, pca.prix_ht, pca.quantite, pca.total_prix_ht from (`peel_commandes` ac pc )inner join (`peel_commandes_articles` as pca) on pc.id = pca.commande_id where pca.produit_id=(select pc.id from `peel_commandes` as pc where pc.id=".$commandeid.")";

et voila le message d'erreur qui s'affiche :

Une erreur de connexion à la base s est produite 66.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'pc )inner join (`peel_commandes_articles` as pca) on pc.id = pca

je te precise tout de meme que la ligne 66 c'est la ligne qui suit la ligne de la requete

Julien

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

salut c'est encore moi j'ai un probleme au niveau de ma requete mais je ne vois pas se qui cloche

voila la requete :

	$select = "SELECT pc.id, pc.id_utilisateur, pc.email, pc.client_info1, pc.client_info2, pc.montant, pc.montant_ht, pc.totalt_produit, pc.paiement, pc.cout_transport, pc.total_tva, pc.poids, pc.tva, pc.zone, pca.commande_id, pca.produit_id, pca.prix_ht, pca.quantite, pca.total_prix_ht from (`peel_commandes` ac pc )inner join (`peel_commandes_articles` as pca) on pc.id = pca.commande_id where pca.produit_id=(select pc.id from `peel_commandes` as pc where pc.id=".$commandeid.")";

et voila le message d'erreur qui s'affiche :

je te precise tout de meme que la ligne 66 c'est la ligne qui suit la ligne de la requete

Julien

juste au premier couop d'oeil comme ça :

un erreur de syntaxe en effet la requete est mal construite

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

	$select = "SELECT pc.id, pc.id_utilisateur, pc.email, pc.client_info1, pc.client_info2, pc.montant, pc.montant_ht, pc.totalt_produit, pc.paiement, pc.cout_transport, pc.total_tva, pc.poids, pc.tva, pc.zone, pca.commande_id, pca.produit_id, pca.prix_ht, pca.quantite, pca.total_prix_ht from (`peel_commandes` ac pc )inner join (`peel_commandes_articles` as pca) on pc.id = pca.commande_id where pca.produit_id=(select pc.id from `peel_commandes` as pc where pc.id=".$commandeid.")";

Tu as déja 2 erreurs de frappe:

- pc.totalt_produit --> pc.total_produit

- `peel_commandes` ac pc --> `peel_commandes` as pc

Déja là tu n'auras plus d'erreurs (au moins sur phpmyadmin) , MAIS...

- tu joints 2 fois la même table avec le même alias "`peel_commandes` as pc"

- tu joints un id produit et un id de commande.

Pour moi il faut que tu revois ta requete et que tu joignes peel_commandes, peel_commandes_articles et peel_articles.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

merci willy il me semblait avoir réécri un message mais il n'est pas passé, c'etait pour te dir que j'avai trouver mes erreurs.

excuse moi de t'avoir derrangé pour rien.

Par j'aimerai avoir dans mon fichier csv une ligne par produit present dans la commande qui comporte le numéro du client son email et tous les renseignement du produits (ref_prod , nom_prod, qté, montant total prod ht, montant total prod ttc) aisi que le montant total ht de la facture et son montant ttc

et lorsque je fai une simulation j'obtiens (avec 2 prod differents) deux lignes mais j'ai pas les renseignements client qui apparaissent comme il faut

96

1|914|kefren@orange.fr|JULIEN BALLESIO

740 chemin des graves

82370

reynies

France

0606060606

kefren@orange.fr

|JULIEN BALLESIO

740 chemin des graves

82370

reynies

France

0606060606

kefren@orange.fr

|8.28000|6.92308|2.00000|Chèque|6.28|1.36|200.00||France|1|1.67|1|1.67

25|915|julien.ballesio@gmail.com|JU BAL

5454545

82370

ghdthj

France

06545456

julien.ballesio@gmail.com

|JU BAL

5454545

82370

ghdthj

France

06545456

julien.ballesio@gmail.com

|9.78000|8.17726|3.50000|Chèque|6.28|1.60|100.00||France|25|2.93|1|2.93

Julien

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Un conseil enleve les adresses email...

Sinon donne nous ce que tu as mis dans ta boucle while, a mon avis il y a des sauts de lignes en trop :rolleyes:

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

voila la requete et la boucle

	$select = "SELECT pca.produit_id as pcaproduit_id, pc.id_utilisateur as pcid_utilisateur, pc.email as pcemail, pc.client_info1 as pcclient_info1, pc.client_info2 as pcclient_info2, pc.montant as pcmontant, pc.montant_ht as pcmontant_ht, pc.total_produit as pctotal_produit, pc.paiement as pcpaiement, pc.cout_transport as pccout_transport, pc.total_tva as pctotal_tva, pc.poids as pcpoids, pc.tva as pctva, pc.zone as pczone, pca.commande_id as pcacommande_id, pca.prix_ht as pcaprix_ht, pca.quantite as pcaquantite, pca.total_prix_ht as pcatotal_prix_ht from peel_commandes as pc, peel_commandes_articles as pca where pc.id = pca.commande_id and pca.produit_id=(select pc.id from `peel_commandes` as pcp where pcp.id=".$commandeid.")";


	$req = mysql_query($select) or die ('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . mysql_error());


	while($com = mysql_fetch_array($req))

		{


			fwrite($create_csv,$com['pcaproduit_id']."|".$com['pcid_utilisateur']."|".$com['pcemail']."|".$com['pcclient_info1']."|".$com['pcclient_info2']."|".$com['pcmontant']."|".$com['pcmontant_ht']."|".$com['pctotal_produit']."|".$com['pcpaiement']."|".$com['pccout_transport']."|".$com['pctotal_tva']."|".$com['pcpoids']."|".$com['pctva']."|".$com['pczone']."|".$com['pcacommande_id']."|".$com['pcaprix_ht']."|".$com['pcaquantite']."|".$com['pcatotal_prix_ht']."\r\n"); //là tu mets toutes les infos que tu veux en provenance de ta requete SQL, genre $prod['nom'] ou $prod[id]


		}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

C'est normal, les informations clients sont stockées en ligne dans la base.

Et si tu créés une fonction du style:

<?php

function nls2p($str)

{

  return str_replace('<p></p>', '', '<p>'

		. preg_replace('#([\r\n]\s*?[\r\n]){2,}#', ' $0 ', $str)

		. '</p>');

}

?>

Et que tu appels cette fonction pour les infos client ?

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

oui si tu le dis ... :rolleyes:

sauf que je ne connais pas du tout cette fonction, ni comment elle fonction et comment on recupere les infos clients

Mais apparement ca à l'air plus simple de faire avec cette fonction

Julien

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Justement je te donne une fonction :rolleyes:

Tu la mets dans ton code, comme une autre fonction et ensuite tu l'appels

nls2p($com['pcclient_info1'])

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

j'ai essayé la fonction que tu m'as fait passer mais en fait elle m'affiche exactement la meme chose sauf que c'est présenté différemment

Julien

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Il faut chercher une fonction qui supprime les sauts de lignes en php.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

j'ai besion d'une explication a propos de ca :

1/

$select1 = "select pu.id as puid, pu.code_client as pucc, pu.email as puemail, pu.civilite as puciv, pu.nom_famille as punom, pu.prenom as puprenom, pu.adresse as puadr, pu.code_postal as pucp, pu.ville as puv, pu.pays as pupays from peel_utilisateurs as pu where pu.id = (select puc.id_utilisateur from peel_utilisateurs_commandes as puc where puc.id_commande = ".$commandeid.")";

2/ resultat :

Unknown column 'pu.id' in 'field list'

pouquoi 'pu.id' n'est pas connue ???

julien

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

car il n'existe pas

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

c'est à dire ??? Elle n'existe pas dans la bese de données SQL ?

Julien

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

oui sinon la requete est mal construite à toi de voir je connais pas ta base

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

je sais que je ne suis pas un geni de l'informatique, mais honnetement ta reponse est juste en quelque sorte la traduction du message d'erreur que j'obtiens avec un element supplémentaire car lui ne m'indique pas qu'il neconnai pas ma table juste que la colonne demandée n'existe pas !!! et si je vous embete avec cce probleme c'est parce sue dans ma table peel_utilisateurs la premiere colonne s'appelle "id" comme beaucoup voire toutes les tables de la BDD Mysql de peel.

Jem'excuse oci pour ce message car tu n'est pas censée savoir que j'ai déjà vérifié la présence de la colonne "id" dans la table peel_utilisateurs et que je travaille avec avec la composition des tables de la BDD donc c'est pour avoir une "relecture" de ma requete que je vous embete car meme en ayant relu ma requete je n'ai pas reussi a trouver mon erreur, donc comme vous devez avoir plus l'habitude que moi de travailler le sql en quasiment un coup d'oeil vous arrivez a detecter des faute de syntaxe ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Voila je comprends pourquoi j'avais tant de probleme... en fait la table peel_utilisateurs_commandes est vide... et comme c'est elle qui fait le lien entre la table peel_commandes et la table peel_utilisateurs ....

Mintenant j'aimerai avoir un renseignement sur un insert, car j'ai mes deux variables $commandeid (qui recupère le numéro de la commande) et $numclt (le numéro du client)

la table d'enregidrment : peel_utilisateurs_commandes(#utilisateur_id;"commande_id) les variables : $commandeid ; $numclt

si vous poouviez m'aider à rédiger cet insert ca m'aiderai beaucoup

Merci d'avance Julien

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