Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1395 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  affichage de double requetes dans un seul tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

affichage de double requetes dans un seul tableau

n°1886306
roy mustan​g
Posté le 20-05-2009 à 03:51:57  profilanswer
 

salut j'utilise mysql et je voudrais afficher le contenu de 2 tables mysql dans un seul tableau le problème c'est que les enregistrement ne s'affiche pas comme il en faut voici mon script seulement pour la première colonne
 

Code :
  1. //requete1
  2. $requete_gen="select * from type_matiere_premiere,matiere_premiere where type_matiere_premiere.code_mat_pre=matiere_premiere.code_mat_pre";
  3. $result1=mysql_query($requete_gen)OR die(mysql_error());
  4. //requete 2 en relation avec une variable globale $n_cat
  5. $requete_consom="select * from article,consommer,type_matiere_premiere,categorie,entree_stock where entree_stock.code_typ_mat_pre=type_matiere_premiere.code_typ_mat_pre and article.n_cat=categorie.n_cat and article.n_art=consommer.n_art and consommer.code_typ_mat_pre=type_matiere_premiere.code_typ_mat_pre and categorie.n_cat='$n_cat'";
  6. $result2=mysql_query($requete_consom)OR die(mysql_error());
  7. while ($ligne2=mysql_fetch_assoc($result2))
  8. //le premier while en effet devra me permettre d'afficher tous les enregistrements dans ma base le secon while c'est uniqument ceux en relation avec ma variabl globale
  9. {
  10. while($ligne1=mysql_fetch_assoc($result1))
  11. {
  12. echo'<tr><td>'.$ligne1["des_typ_mat_pre"].'</td>';
  13. if($ligne1['code_typ_mat_pre']==$ligne2['code_typ_mat_pre'])
  14. {
  15. //si condition vérifié affiche prix
  16. echo'<td>'.$ligne2["pr_ttc"].'</td></tr>';
  17. }
  18. else
  19. //sinon doit afficher un zéro
  20. {
  21. echo"<td>0</td></tr>";
  22. }
  23. }


merci pour votre aide

mood
Publicité
Posté le 20-05-2009 à 03:51:57  profilanswer
 

n°1886610
macgawel
Posté le 20-05-2009 à 16:08:51  profilanswer
 

roy mustang a écrit :

salut j'utilise mysql et je voudrais afficher le contenu de 2 tables mysql dans un seul tableau le problème c'est que les enregistrement ne s'affiche pas comme il en faut


Utilise des balises html pour les afficher "comme il faut"  :whistle:  
 
Sérieusement, ce serait bien d'expliquer un peu plus précisément ton problème.
 
Quelques remarques vite fait :
1. Il vaut mieux éviter de faire des SELECT *, il vaut mieux faire SELECT (liste des champs).
Ca économise de la mémoire (pourquoi stocker 15 champs * nombre d'enregistrements si tu n'en utilises que 2 ?)
Et ça permet d'éviter des éventuels problèmes de maintenance.
 
2. Pourquoi tu ne ferais pas plutôt une seule requête avec une jointure ? A vue de nez c'est faisable (il faut voir en fonction des tables).
 
3. Ton imbrication de while me semble douteuse. Le deuxième while particulièrement :
Au premier passage, tu vas boucler sur ton $result1, mais au deuxième passage mysql_fetch_assoc ne revient pas au début.
Du coup la boucle est quittée tout de suite...

n°1886764
roy mustan​g
Posté le 21-05-2009 à 02:46:32  profilanswer
 

macgawel a écrit :


Utilise des balises html pour les afficher "comme il faut"  :whistle:

 

Sérieusement, ce serait bien d'expliquer un peu plus précisément ton problème.

 

Quelques remarques vite fait :
1. Il vaut mieux éviter de faire des SELECT *, il vaut mieux faire SELECT (liste des champs).
Ca économise de la mémoire (pourquoi stocker 15 champs * nombre d'enregistrements si tu n'en utilises que 2 ?)
Et ça permet d'éviter des éventuels problèmes de maintenance.

 

2. Pourquoi tu ne ferais pas plutôt une seule requête avec une jointure ? A vue de nez c'est faisable (il faut voir en fonction des tables).

 

3. Ton imbrication de while me semble douteuse. Le deuxième while particulièrement :
Au premier passage, tu vas boucler sur ton $result1, mais au deuxième passage mysql_fetch_assoc ne revient pas au début.
Du coup la boucle est quittée tout de suite...


pour votre premier point 1 , je vous assure que mes requêtes sont fonctionnelles et que je les ai testé sur phpmyadmin
pour votre point 2, vous vouliez dire the inner join??? aucune idée comment le faire sinon le résultat de chaque requête est différent de l'autre(l'une affiche tous les enregistrements à partir de mes tables mysql et l'autreseulement ceux en cours!)
pour votre point 3, voila voila c'est ça le problème et j'en suis sure!!! avez vous une idée comment le traiter?
j'ai besoin de votre aide merci!!!


Message édité par roy mustang le 21-05-2009 à 02:49:02
n°1886893
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 21-05-2009 à 21:08:45  profilanswer
 

ce n'est pas parce qu'un SELECT * est fonctionnel qu'il est judicieux ...
 
je rejoins l'avis de macgawel là-dessus : si tu n'utilises qu'un seul champ (ou 2) ça ne sert à rien de rapatrier tous les champs. Et faire SELECT champ1, champ2 FROM ... est tout aussi valable que SELECT * FROM, à la différence près que c'est moins gourmand en ressources (et, selon les schémas des tables dans la base, ça évite aussi de rapatrier n'importe quoi).
 
pour la jointure : pourquoi ne pas faire, au lieu de :

Code :
  1. select * from type_matiere_premiere,matiere_premiere where type_matiere_premiere.code_mat_pre=matiere_premiere.code_mat_pre


ceci :

Code :
  1. SELECT
  2.     tmp.champ1,
  3.     tmp.champ2
  4. FROM
  5.     type_matiere_premiere tmp
  6.     LEFT JOIN
  7.         matiere_premiere mp
  8.     ON
  9.         tmp.code_mat_pre = mp.code_mat_pre
  10. GROUP BY
  11.     tmp.champ1;


par exemple, après reste à appliquer un critère dans le Where, s'il le faut, ou bien un order by, voire un limit s'il y a besoin. Et, bien entendu, déterminer les X champs à rapatrier.
 
dans ton 2nd while, tu génères une ligne à chaque nouveau passage, c'est voulu ainsi ?


---------------
NewsletTux - outil de mailing list en PHP MySQL

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  affichage de double requetes dans un seul tableau

 

Sujets relatifs
Affichage des doublons en SQLRegrouper des fichiers excel en un seul par bouton vba
Acceder à un tableau via une seule variable via un pointeur?Créer un formulaire et récupérer les données saisies ds un tableau
Affichage d'une image JPG "sans fichier" [Résolu]tableau en PHP4 avec 4 indxes
Sauvegarder un seul onglet (VBA) ExcelAffichage des <br/> en récupération d'un javascript
[VBA] Problème double macroCompter les occurences d'un tableau
Plus de sujets relatifs à : affichage de double requetes dans un seul tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR