aureliemerlin
Messages postés82Date d'inscriptionjeudi 24 juin 2010StatutMembreDernière intervention17 avril 2013
-
16 déc. 2010 à 11:14
aureliemerlin
Messages postés82Date d'inscriptionjeudi 24 juin 2010StatutMembreDernière intervention17 avril 2013
-
16 déc. 2010 à 14:50
Bonjour à tous
je voudrais afficher ma liste de facture mais j'ai un problème avec mes jointures de requêtes
voici le code
<doctype html public "-//w3c//dtd xhtml 1.0 strcit//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" xml/lang="fr"
lang="fr"
<head>
<title>banques</title>
<META HTTP-equiv="content-type"
content="text/html, charset=utf-8"/>
</head>
<?php
require_once('includes/templategc.php');
require_once('includes/magicquotes.inc.php');
require_once('includes/auxiliaires.inc.php');
require_once('includes/bd.inc.php');
$resultat mysqli_query($lien, 'select No Facture, Code client, Code Commercial, Date, Nomination facture, Evolution facture, PHT facture, CodeAgence, CodeRegion, TypeFacture, TypeClient2, NomEmp, NomSoc, NomAgence, VilleSoc, VilleEmp, VilleBQ, DateReglement, NumeroInterne from bdfacture, bdclient, bdbanques where bdfacture.[code commercial] bdclient.CodeCom and bdfacture.Code client = bdclient.Num and bdfacture.Code client = bdbanques.Num');
if (!$resultat)
{
$erreur = 'erreur de la lecture : '.mysqli_error($lien);
include 'erreur.html.php';
exit();
}
et le message d'erreur est les suivant
erreur de la lecture : Erreur de syntaxe pr�s de '[code commercial] = bdclient.CodeCom and bdfacture.Code client = bdclient.Num an' � la ligne 1
Lyle56
Messages postés240Date d'inscriptionjeudi 1 mai 2008StatutMembreDernière intervention19 juillet 20122 16 déc. 2010 à 14:15
C'est ta requête SQL qui est mal formatée...
il ne faut pas de [ ] dans la requéte
J'aurais juste 2 remarques
1-> Il est conseillé d'avoir des noms sans espaces/ caractères spéciaux accentués pour les noms de bases, de Tables et de champs
2-> Si tu as plusieurs bases, passe par des alias. Tu auras une meilleure lisibilité de tes requétes.
Ta requéte :
'select No Facture, Code client, Code Commercial, Date, Nomination facture, Evolution facture, PHT facture, CodeAgence, CodeRegion, TypeFacture, TypeClient2, NomEmp, NomSoc, NomAgence, VilleSoc, VilleEmp, VilleBQ, DateReglement, NumeroInterne from bdfacture, bdclient, bdbanques where bdfacture.[code commercial] = bdclient.CodeCom and bdfacture.Code client = bdclient.Num and bdfacture.Code client = bdbanques.Num'
La requête que j'aurais plutôt vue avec les noms de champs sans espaces :
'select A.No_Facture, B.Code_client, X.Code_Commercial, X.Date, X.Nomination_facture, X.Evolution_facture, X.PHT_facture, X.CodeAgence, X.CodeRegion, X.TypeFacture, X.TypeClient2, X.NomEmp, X.NomSoc, X.NomAgence, X.VilleSoc, X.VilleEmp, X.VilleBQ, X.DateReglement, X.NumeroInterne from bdfacture A, bdclient B, bdbanques C where A.code_commercial B.CodeCom and A.Code_client B.Num and B.Code_client = C.Num'
[ le X remplace l'alias de la Table ]
Si tu veut optimiser tu peut utiliser JOIN
Au vue de ta structure je dirai que :
SELECT * FROM bdclient NATURAL JOIN bdfacture, bdbanques
Devrais avoir le même retour.
Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.