Eurovore: Combiner deux requêtes - Eurovore

Aller au contenu

Page 1 sur 1

Combiner deux requêtes dans un while

#1 L'utilisateur est hors-ligne   YannOuch 

  • Maître du post
  • Groupe : Membres
  • Messages : 1 546
  • Points : 0
  • Inscrit(e) : 14-mai 11
  • Sexe :Homme
  • Localisation :Toulouse
  • Intérêts :Moi j'suis PC et c'est comme ça !

Posté 18 mars 2012 - 07:07

Bonjour,
Suite à ce topic: http://www.eurovore....hile-imbriques/
Et l'explication donné par scripsitejeux, j'en vient aujourd'hui à celui.

En effet je cherche à combiner les donnés d'un tableau.

Actuellement celui-ci ne comporte les données que d'une seule table.
<?php
//INFOS BDD
$date1="1330894800"; $date2="1333310400";

$sql= "SELECT * FROM donnees";
$req=mysql_query("SELECT donnees1, COUNT(*) AS nb_donnees FROM donnees WHERE date BETWEEN '$date1' AND '$date2' GROUP BY donnees1 ORDER BY nb_donnees DESC LIMIT 0,15");
?>


J'affiche donc celles-ci dans mon tableau :
<table cellspacing="1" cellpadding="3">
	<tr>
		<th style="background-color:#183F77">Position°</th>
		<th style="background-color:#183F77">Identidiant</th>
		<th style="background-color:#183F77">Données 1</th>
		<th style="background-color:#183F77">Nb Donnees</th>
	</tr>
<?php
$i = 0;
while($infos = mysql_fetch_array($req))
{
	$i++;
	$ppo = mysql_query("SELECT identifiant FROM membres WHERE pseudo='".$infos['donnees1']."'");
	$tak = mysql_fetch_array($ppo);
	
				if ($i%2 == 0) { $resultat = '#6CB3DD'; }
				else	if ($i%2 == 1) { $resultat = '#ADD3FF'; }
	?>
	<tr>
		<td style="background-color:<?php echo $resultat; ?>;"><?php echo $i; ?></td>
		<td style="background-color:<?php echo $resultat; ?>;"><?php echo $tak['identifiant']; ?></td>
		<td style="background-color:<?php echo $resultat; ?>;"><?php echo $infos['donnees1']; ?></td>
		<td style="background-color:<?php echo $resultat; ?>;"><?php echo $infos['nb_donnees']; ?></td>
	</tr>
	<?php
}
?>
</table>


Jusqu'ici rien de bien compliqué.
Mais j'aimerais, rajouté une seconde requête à ma première, basée elle sur une autre table, avec la même sctructure :
<?php
//INFOS BDD
$date1="1330894800"; $date2="1333310400";

$sql= "SELECT * FROM donnees2";
$req=mysql_query("SELECT donnees1, COUNT(*) AS nb_donnees FROM donnees WHERE date BETWEEN '$date1' AND '$date2' GROUP BY donnees1 ORDER BY nb_donnees DESC LIMIT 0,15");
?>


Et donc l'afficher également dans "mon" tableau.
Mais, pas dans un tableau différent. Ni à la fin, ni avant.
J'aimerais, que si "identifiant" ou bien "donnees1" se retrouvent dans se tableau et bien ils s'ajoutent/combinent en fonction de "nb_donnees".

J'ai cherché un long moment avec mon amir google, mais ce ne fut pas fort concluant.

Alors si vous aviez quelques mots/requetes clés, ou bien début de solution, à me conseiller je suis preneur en ce début de matinée !

Je vous remercie par avance, ne serait-ce que pour m'avoir lu !

Bien amicalement, Yann.

Ce message a été modifié par YannOuch - 18 mars 2012 - 20:57 .

0

#2 L'utilisateur est hors-ligne   YannOuch 

  • Maître du post
  • Groupe : Membres
  • Messages : 1 546
  • Points : 0
  • Inscrit(e) : 14-mai 11
  • Sexe :Homme
  • Localisation :Toulouse
  • Intérêts :Moi j'suis PC et c'est comme ça !

Posté 19 mars 2012 - 15:46

Un petit up ! :oops:
0

#3 L'utilisateur est hors-ligne   d3b14n 

  • Posteur Expérimenté
  • Groupe : Membres
  • Messages : 713
  • Points : 0
  • Inscrit(e) : 03-septembre 09

Posté 20 mars 2012 - 16:56

array_merge(array1,array2);

si ta structure est similaire les tableaux en sortie sont similaires, tu peux sans problème les fusionner.

C'est une solution bidouille qui fonctionnera, mais je pense que le plus propre reste une jointure. Bref l'important c'est que cela résoudra ton problème ;)

Have a nice day :)

Ce message a été modifié par d3b14n - 20 mars 2012 - 16:59 .

--- R.I.P. 29/08/2013 ---
0

#4 L'utilisateur est hors-ligne   YannOuch 

  • Maître du post
  • Groupe : Membres
  • Messages : 1 546
  • Points : 0
  • Inscrit(e) : 14-mai 11
  • Sexe :Homme
  • Localisation :Toulouse
  • Intérêts :Moi j'suis PC et c'est comme ça !

Posté 20 mars 2012 - 18:30

Salut !

Mes tables sont identiques ! Enfin, la structure du moins. ^^

Je vais essayer avec ce que tu me propose, même si je ne sais pas encore comment m'y prendre. Je verrais ce soir en rentrant du boulot.

Je regarderais également du coté de la jointure pour voir.

En tout cas merci beaucoup !!

Bien amicalement, Yann.
0

#5 L'utilisateur est hors-ligne   d3b14n 

  • Posteur Expérimenté
  • Groupe : Membres
  • Messages : 713
  • Points : 0
  • Inscrit(e) : 03-septembre 09

Posté 20 mars 2012 - 23:33

RE,

Tu verras c'est très simple.
Tu fais une Fetchall de tes resultats, dans 2 variables différentes. Cela va te créer des tableau de structure identique dans ces deux variable.

Ensuite tu fais $nouveau_tableau = array_merge($tableau1,$tableau2);
print_r($nouveau_tableau);

et tu verras les tableaux sont fusionnés donc tes résultats compilés.
Ensuite tu peux chercher différentes fonction array_ (voir manuel php) en fonction des tris que tu souhaites faire.

A ton service ;)
--- R.I.P. 29/08/2013 ---
0

Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)