Probleme requete avec plusieurs tables [Résolu]

Signaler
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013
-
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();
}

while ($ligne = mysqli_fetch_array($resultat))
{
$bdbanques[]= array('NumBanque' => $ligne ['NumBanque'], 'Enseigne' => $ligne['Enseigne'], 'NomAgence' => $ligne['NomAgence'], 'VilleBq' => $ligne['VilleBq']);
}
?>
<?php echo " Num |Type |Nom agence |Ville |- |- |\" ; ?>

<?php foreach ($bdbanques as $banques): ?>
<form action =\"CONSULTER\" method=\"POST\">
<?php echo \"----
" .htmlspecialchars($banques['NumBanque'], ENT_QUOTES, 'utf-8'). ", \" ; ?>
<?php echo \"" .htmlentities(htmlspecialchars($banques['Enseigne'], ENT_QUOTES, 'utf-8')). ", \" ; ?>
<?php echo \"" .htmlspecialchars($banques['NomAgence'], ENT_QUOTES, 'utf-8'). ", \" ; ?>
<?php echo \"" .htmlspecialchars($banques['VilleBq'], ENT_QUOTES, 'utf-8'). ", \" ; ?>
[index.php ] [creabanque.php ]

<?php

pied();
?>

</html>

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

je ne sais pas comment corriger ce problème

quelqu'un a t il une idée ???

merci d'avance
bonne journée
Aurélie

2 réponses

Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
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.
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013

merci beaucoup pour ta réponse je viens de modifier avec ce que tu m'as dis et cela fonctionne

encore merci
Bonne journée

Aurélie