deux requêtes un tableau

Petit nouveau ! | 1 Messages

15 nov. 2011, 15:50

Bonjour à tous,

j'ai effectué pas mal de recherche sans trouvé la solution, je recherche à afficher le résultat de deux requêtes dans un même table j'ai essayé avec ce code mais ça ne fonctionne pas :
				
          $query="select count( DISTINCT postes.pi )as somme
				  from postes
				  ";
				  
		 $query2="select count( DISTINCT pi_poste )as somme2
				  from tpr_poste
				  where maj='fait'
				  ";		  
		  
		  
		  $res=mysql_query($query) or die ("erreur1");   
		  $res2=mysql_query($query2) or die ("erreur2"); 

          echo"<table width='0%' cellpadding='5' cellspacing='1' border='1' align='center'>";
          echo"<tr><td align='center'><b>Nombre de postes</b></td><td align='center'><b>Nombre de postes traités</b></td></tr>";
			
		  while($val=mysq_fetch_array($res) and $data=mysq_fetch_array($res2))
          {		
              
			  $count = $val['somme'];
              $count2 = $data['somme2'];
              

              echo"<tr><td>".$count."</td><td>".$count2."</td></tr>";
          }

          echo"</table><br>";
Merci par avance.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 nov. 2011, 16:12

salut,

met les deux dans des tableaux et ensuite parcourt l'un et l'autre des tableaux pour afficher.

a tu essayé une seule requete comme ça ?
                       
          select count( DISTINCT postes.pi )as somme,  count( DISTINCT pi_poste )as somme2
                                   from poste, tpr_poste
                                   where tpr_poste.maj='fait';
@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 11 Messages

15 nov. 2011, 17:00

Oui j'ai essayé mais comme les deux tables sont liés cela me sort le même chiffre des deux cotés, c'est pour cela que j'effectue deux requêtes différentes, sinon je vais créer deux tableaux et essayer de les afficher l'un à côté de l'autre.

ViPHP
AB
ViPHP | 5818 Messages

15 nov. 2011, 17:33

Je vois pas vraiment où tu bloques...
Si tu as deux tableaux php tu peux les fusionner avec array_merge ou les additionner avec un simple '+' : $tab_result = $tab1+$tab2

Eléphanteau du PHP | 11 Messages

15 nov. 2011, 17:37

ah mais c'est juste que je ne savais pas que l'on pouvait faire ça :oops: , je vais essayer ceci de suite. :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 nov. 2011, 19:11

Sinon la version brutal tu fait une requête avec deux subselect pour le comptage.

Je ne vois pas trop pourquoi tu aurais le même résultat avec ce que j'ai mis doit me manquer un truc :/
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 11 Messages

16 nov. 2011, 10:39

la requête ne fonctionne car pi_poste est la clé étrangère de pi et du coup j'ai les mêmes valeurs dans les deux tables et la fonction where joue sur les deux colonnes et non pas seulement sur la deuxième. (je ne sais pas si ce que je viens d'écrire est très clair).

ViPHP
ViPHP | 2577 Messages

16 nov. 2011, 10:50

Bonjour,

Sauf erreur de ma part (ou erreur mysql), les 2 requêtes initiales retournent toujours une ligne (jamais 0 et jamais plus) il est donc inutile de faire un while et de se torturer les méninges.

Si les 2 requetes initiales sont eronnées, il faut créer une vue avec un groupe by sur chaque table et faire le select sur ces 2 vues pour rapprocher les comptages.

Eléphanteau du PHP | 11 Messages

16 nov. 2011, 11:56

Bonjour,

Sauf erreur de ma part (ou erreur mysql), les 2 requêtes initiales retournent toujours une ligne (jamais 0 et jamais plus) il est donc inutile de faire un while et de se torturer les méninges.
En effet j'ai récupéré les résultats dans deux variable que j'affiche dans un tableau, des fois le plus simple ne saute pas tout de suite aux yeux.
Merci pour votre aide