Doublons a affichage d'une requete composée de trois tables

Signaler
Messages postés
6
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
26 novembre 2008
-
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
-
Bonsoir je suis sur un problème qui dure depuis Deux Semaines  : Enlever des doublons d'un champ à l' affichage,
 j'ai beau parcourir tous les tutos sur le Web les ouvrages mais je ne trorve aucun exemple concret expliquant quel boucles utiliser pour extraire les données d'une table sans doublons ( meme si j'utilise le DISTINCT ds ma requete ), je pense qu ele probleme vient du choix de la boucle (while, for, et surtout goreach que je ne sasis pas utiliser ) en fait avant de tous déballer ( requet ,table, codes ect ) je voulais avoir un cours avec exemple ou on utilise les boucles mais avec des requetes avec 3tables la plupart des cours avec les boucles c'est sur des nombres ou les cours concernent   une clé primaire et une secondaire ...

 Merci Merci de votre aide j'attend avec Impatience !!

3 réponses

Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
bonjour,


quelle est ta base de donnée?

cantador
Messages postés
6
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
26 novembre 2008

 


Objectif :Afficher les Infos de tous les Articles d'un Magasin choisi dans un tableau
Je travaille avec Php et MySQL
A savoir :
 
-- 1 Magasin a plusieurs Articles
-- 1 Article appartient à 1 Magasin
-- 1 Article appartient à 1 Modèle d'ArticleS
-- 1 Modèle d'Articles à plusieurs Articles
-- 1 Article a 1 ou plusieurs Tailles
-- 1 Taille à plusieurs Articles
-- 1 LiaisonArticlesTailles ( Noucelle tables crée par les Cardinalités (1,N)
     entre Articles et Tailles)
Mes Tables


magasin( mag_ID, mag_Nom)
modeles(mod_ID,mod_Nom )
articles( art_ID, art_Nom, #mod_ID,# mag_ID)
tailles(tail_ID, tail_nom)
liaisonArticlesTailles(art_ID, tail_ID,prixUnitaireArticle)



Je voufrais Obtenir cela


 en HTML :( après je vous mets le code PHP)
SORTIE 
  ----
Ici $mod_Nom, Ici $taille_Nom(toutes les tailles),
  ----
Ici $art_Nom(tousles articles), Ici $prixUnitaireArticle


C'est TOUT !



A savoir que :
 Pour un Modele on a plusieurs Tailles, plusieurs Articles, et leurs Prix


ex en Sortie


 __________________________________________
 |Modele A | taille 1 | taille 2| taille 3 |
 |_________________________________________|
 |Article 1|  7euros  | 12euros | 20euros  |
 |_________________________________________|
 |Article 2|  3euros  | 13euros | 24euros  |
 |_________________________________________|  
 |Article 3|  6euros  | 12euros | 23euros  |
 |_________________________________________|
 |Article 4|  8euros  | 15euros | 24euros  |
 |_________________________________________|


 __________________________________________
 |Modele B | taille 1 | taille 2| taille 3 |
 |_________________________________________|
 |Article 5|  8euros  | 11euros | 19euros  |
 |_________________________________________|
 |Article 6|  2euros  | 13euros | 17euros  |
 |_________________________________________|  
 |Article 7|  5euros  | 15euros | 23euros  |
 |_________________________________________|
 |Article 8|  4euros  | 11euros | 24euros  |
 |_________________________________________|


 ect ect----> à autant de modèles on aura :
  les tailles
  les Articles
  le prix en fonction de Articles et de la Taille choisie
 
 Pour le  moment je ne cherche que l'Affichage



Voila mon code Php avec Mysql( Bdd)




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>nosArticles.php</title>
<link href="fichiers/css/choisirArticles.css" rel="stylesheet" type="text/css" />
</head>

<?php
error_reporting(E_ALL);
$host = \"localhost\";
$user = \"root\";
$mdp  = \"\";
$base = \"NajetBoutique\";
$link = mysql_connect($host,$user,$mdp) or die(mysql_error());
$cnx = mysql_select_db($base,$link) or die(mysql_error());
$mag_ID = 1;$query (\"SELECT DISTINCT mod_ID FROM articles WHERE mag_ID '$mag_ID'\")or die(mysql_error());
$req = mysql_query($query,$link);
while($tab = mysql_fetch_assoc($req)){
 $mod_ID = $tab['mod_ID'];
 echo'';
 echo'<table width="35%" cellspacing="0" cellpadding="0">';
 $query1 =(" SELECT DISTINCT mod_Nom FROM modeles WHERE mod_ID = '$mod_ID'");
 $req1 = mysql_query($query1);
 $n = mysql_num_rows($req1);
 for($i=0; $i<$n; $i++){
  echo'----
';
  $tab1 = mysql_fetch_assoc($req1);
  $mod_Nom = $tab1['mod_Nom'];
  echo', '.$mod_Nom.'</td>';
  $query2=(\"SELECT DISTINCT t.taille_Nom
    FROM tailles AS t, articles AS a, liaisonArticlesTailles AS LAT    WHERE LAT.mag_ID a.art_ID AND LAT.taille_ID t.taille_ID
    AND a.mod_ID ='$mod_ID'\") or die (mysql_error());
  $req2 = mysql_query($query2);
  while($tab2 = mysql_fetch_assoc($req2)){
   $taille_Nom = $tab2['taille_Nom'];
   echo''.$taille_Nom.', ';
  }
  echo'';
 } 
 $query3=(\"SELECT DISTINCT a.art_Nom, LAT.prixUnitaireArticle 
   FROM tailles AS t, articles AS a, liaisonArticlesTailles AS LAT   WHERE LAT.mag_ID a.art_ID AND LAT.taille_ID t.taille_ID
   AND a.mod_ID ='$mod_ID'\") or die (mysql_error());
 $req3=mysql_query($query3);
 while($tab3 = mysql_fetch_assoc($req3)){ 
  $art_Nom = $tab3['art_Nom'];
  $prixU = $tab3['prixUnitaireArticle']; 
  echo'----
';
  echo''.$art_Nom.', ';
  echo''.$prixU;
  echo'<form action="" method="post">';
  echo'<select><option value="0">0</option> <option value="1">1</option><option value="2">2</option><option value="3">3</option></select>';  
  echo'</form>';
  echo', ';
  echo'';
 }
 echo'
';
 echo'</td>';
 echo'<td class="separTable">&nbsp;&nbsp;</td>';
}
mysql_close();
?>
</tr></table>
</html>





J'AI PAS vRAIMENT CE QUE JE VEUX !!
 Mais je m'avoue compètement BATTUE !!!!!je Craque !!!!



 mon AFFICHAGE :




 __________________________________________
 |Modele A | taille 1 | taille 2| taille 3 |
 |_________________________________________| A Savoir que les prix sont  les Bons mais pas les tailles
 |   |          |        |          |   ( cad 
 |Article 1|  2euros  |         |          |    
 |_________________________________________|    normalement pour article 1 - 4 euros appartient a taille2
 |Article 1|  4euros  |         |   |   artilce 1 - 8euros "     "    "  taille3
 |_________________________________________|    article 2 - 12euros appartient a taille2
 |Article 1|  8euros  |         |          |   article 2 - 19 euros appartient a taille3
 |_________________________________________|
 |Article 2|  3euros  |         |          |en Fait il n'y a que pour taille1 que les prix sont correct
 |_________________________________________|
 |Article 2|  12euros |         |          |
 |_________________________________________| 
 |Article 2| 19euros  |         |          |
 |_________________________________________|




 __________________________________________
 |Modele B | taille 1 | taille 2| taille 3 |
 |   |      |        |   | normalement pour article 3 - 14 euros appartient a taille2   |
 |_________________________________________|   article 3 - 17 euros appartient a taille3
 |Article 3|  8euros  |         |          |
 |_________________________________________|   article 4 - 14 euros appartient a taille2
 |Article 3|  14euros |         |          |   article 4 - 19 euros appartient a taille3
 |_________________________________________| en Fait il n'y a que pour taille1 que les prix sont correct        
 |Article 3|  17euros |         |          |
 |_________________________________________|
 |Article 4|  4euros  |         |          |
 |_________________________________________|
 |Article 4|  14euros |         |          |
 |_________________________________________|
 |Article 4|  19euros |         |          |
 |_________________________________________|


  Merci Beaucoup pour Votre AIde Que J'attends avec Impatience


 
 D'après moi : Problemes dans mes Boucles et requete de tables jointes 
   sans utiliser les mots clés des jointures (mais j'ai beaucoup de mal a comprendre )
  Solutions : doublons a éliminer
requete a amelioré avec motclé : joint
 
  
 Je Suis sur le meme code depuis plus de 3 semaines et je suis auto didacte 
 Et malheureusement je n'ai pas d'Amies ds ce domaine
  
 Mais là depuis quelle que temps je craque car je n'arrive pas avancer d'une ligne  et j'espère que vos réponses me remotiveront.




 Voila je vous est tout dis j'espère que c'est asssez clair !!!
 Merci beaucoup pour votre aide


 


 


    
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
Désolé, mais je n'utilise pas MySQL..
Peut-être faut-il poster ta question aussi sur le forum PHP ?

cantador