Bonjour, je travaille actuellement sur deux bases de données distinctes, et donc je doit faire une jointure entre des infos sur ces deux bases par le biais d'un script php.

Chaque requête est récupérée dans un tableau, et ce que je veux faire, c'est remplir le tableau jointure à partir des deux tableaux de requête à une certaine condition (numéro ISIN égal)

Je parcours donc le premier tableau, et pour chaque valeur de ce tableau je parcours le second pour trouver si il existe un numéro d'ISIN.

Jusque là, ca va. Je remplis ensuite le tableau jointure avec l'intégralité de mon second tableau plus la seconde colonne de mon premier tableau si la condition de test est vérifiée.

Le problème, c'est que cela ne fonctionne que pour la premiere boucle, car je ne sais pas utiliser les foreach (*se cache*) et donc le pointeur sur mon tableau reste au dernier element, ce qui fait que la seconde colonne de mon premier tableau reste toujours à la meme valeur, et le champs dans mon tableau jointure conserve cette valeur pour toutes les lignes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
$jointure = array();
$cpt = 0;
for ( $i = 0 ; $res =& $result->fetch() ; $i++ ) {
	for ( $j = 0 ; $res2 =& $result2->fetch() ; $j++ ) {
		echo "taille de res = ".count($res)." taille de res2 = ".count($res2);"   ";
		if (strcmp($res["CVALISIN"],$res2["CODE_VALEUR"])){
			$jointure[$cpt] = array("CVAL" => $res2["CVAL"],"CODE_PLISIN" => $res2["CODE_PLISIN"], "LIBELLE" => $res2["LIBELLE"], "CODE_PLACE" => $res2["CODE_PLACE"], "CODE_VALEUR" => $res2["CODE_VALEUR"], "MAR_COT_ID" => $res2["MAR_COT_ID"], "NB_CLIENTS" => $res["NB_CLIENTS"] );
			$cpt++;
			echo "taille de jointure = ".count($jointure)."\n";
		}
	}
}

J'ai essayé pas mal de choses avec les foreach, mais ca va pas du tout, je n'ai plus de valeurs dans mon tableau:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
$jointure = array();
$cpt = 0;
for ( $i = 0 ; $res =& $result->fetch() ; $i++ ) {
	foreach ($res2 as $key => $valeur) {
		echo "taille de res = ".count($res)." taille de res2 = ".count($res2);"   ";
		if (strcmp($res["CVALISIN"],$valeur["CODE_VALEUR"])){
			$jointure[$cpt] = array("CVAL" => $valeur["CVAL"],"CODE_PLISIN" => $valeur["CODE_PLISIN"], "LIBELLE" => $valeur["LIBELLE"], "CODE_PLACE" => $valeur["CODE_PLACE"], "CODE_VALEUR" => $valeur["CODE_VALEUR"], "MAR_COT_ID" => $valeur["MAR_COT_ID"], "NB_CLIENTS" => $res["NB_CLIENTS"] );
			$cpt++;
			echo "taille de jointure = ".count($jointure)."\n";
		}
	}
}

Voila voila, si quelqu'un peut m'expliquer le fonctionnement du foreach dans le cadre de ce tableau à deux dimensions, je ne pourrais que le remercier