Bonjour à tous,



J'essai depuis quelques jours maintenant d'afficher certaines informations provenant de ma BDD sur une de mes pages mais je ne comprends pas trop le fonctionnement qu'a ma requête.

Pour être clair j'appel dans une boucle foreach une des fonctions de mon modèle qui devrait me renvoyer les informations d'une batterie si celle-ci existe dans la BDD, mais là même si elle n'existe pas, elle me renvoi les informations des autres batteries.



Pour être encore plus clair voici ma boucle foreach :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
foreach ($infoBatterie as $key => $value) {	
	//Affiche une image différente suivant si une définition à été faite ou non
	if($value['definition'] != "")	{ $definition = "oui.png";} else { $definition = "non.png";}
	//-----------------------------------------------------------------------------------------------------------
 
		echo "<br>----------------------------------------------<br>";		
//Appel de ma fonction qui renvoi les informations d'une batterie si celle-ci existe
 
		getBatterieMouvement($value["n°batterie"],"");		
 
		echo "<br>----------------------------------------------<br>";
 
	//-----------------------------------------------------------------------------------------------------------
 
 
	echo "<tr>
		<td ".$classTabBatterie." >".numeroMateriel($value['achat'],$value['marque'],$value['n°batterie'])." B</td>
		<td ".$classTabBatterie." >".couperTexte($value['type'], 12,0)."</td>
		<td ".$classTabBatterie." >".couperTexte($value['n°serie'], 15,0)."</td>
		<td ".$classTabBatterie." >".couperTexte($value['marque'], 10,0)."</td>
		<td ".$classTabBatterie." >".$value['voltage']."</td>
		<td ".$classTabBatterie." >".$value['amperage']."</td>
		<td ".$classTabBatterie." >".couperTexte($value['dimension coffre'], 10,0)."</td>
		<td ".$classTabBatterie." >".$value['dimension element']."</td>
		<td ".$classTabBatterie." ><img src='../image/".$mono_tri."'' title='".$titleMono_tri."'></td>
		<td ".$classTabBatterie." >".$statutBatterie."</td>
		<td ".$classTabBatterie." >".affDateFrancais("d/m/Y",$value['achat'],0)."</td>
		<td>	<img src='../image/image_16/".$definition."' /></td>
		<td class='tdImg'><a href='batterieDetail.php?num=".$value['n°batterie']."'><img src='/al-manut/image/detail.png'/></a></td>
	</tr>";			
}

Et maintenant voici ma fonction getBatterieMouvement()

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
function getBatterieMouvement($numBatterieMouvement, $requeteFiltre){
 
	global $infoBatterieMouvement;
	//Appel du fichier "cnx.php" qui permet de se connecter à la BDD
	include("../principal/cnx.php");
 
	//Si aucun n° de batterie n'a été saisie (donc 0) recherche des batteries différentes de 0, donc l'ensemble des batteries
	if($numBatterieMouvement == 0)	{	$choixBatterieMouvement = "!= ".$numBatterieMouvement; } else { $choixBatterieMouvement = "= ".$numBatterieMouvement; }
 
	//Requête
	$pBatterieMouvement  = "SELECT * FROM $table_35";
	//Ajout à la requête du choix du n° de la batterie si celle-ci à été choisie
	$pBatterieMouvement .= " WHERE num_batterie ".$choixBatterieMouvement;
	//Ajout à la requête des conditions si des filtres ont été ajoutés
	$pBatterieMouvement .= $requeteFiltre;
 
	//Execution de la requête
	$rBatterieMouvement = mysql_query($pBatterieMouvement) or die (mysql_error());
 
	$i = 0;
 
	//Boucle qui permet de remplir le tableau avec l'ensemble des mouvements batteries présentes dans la BDD
	while($bBatterieMouvement = mysql_fetch_array($rBatterieMouvement)){
		$infoBatterieMouvement[$i] = array(	"n°batterie" 	=> affichage($bBatterieMouvement['NUM_BATTERIE']),
											"n°parc" 		=> affichage($bBatterieMouvement['NUM_PARC']),
									 		"date debut" 	=> affichage($bBatterieMouvement['DATE_DEBUT_UTILISER']),
											"date fin" 		=> affichage($bBatterieMouvement['DATE_FIN_UTILISER'])
										);
		$i++;
	}
 
	//Retourne le tableau rempli avec tout les mouvements de batteries
	return $infoBatterieMouvement;
}

Il se peut que pour une batterie il puisse y avoir plusieurrs mouvement d'ou mon tableau. Mais je me demande si c'est pas là que commence mon erreur.



Moi je me dis: dans le foreach, appel de la fonction, si le n°batterie existe, renvoi des informations concernant celle-ci, si en revanche dans la BDD le n°batterie n'existe pas, alors renvoi d'aucune informations.

Mais apparement ça ne marche pas comme ça, auriez vous une idée de mon erreur



J'espère avoir été assez clair



Par avance merci