IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requête dans un foreach


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Par défaut Requête dans un foreach
    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

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 22
    Par défaut
    Quelques trucs que je comprend pas trop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($value['definition'] != "")
    Tu veux tester si c'est vide ? peux être utilise !empty ou "!==" enfin ce bout de code a l'air de servir a rien pour la suite de toute façon ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getBatterieMouvement($value["n°batterie"],"");
    Mais là tu conacatene jamais rien non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pBatterieMouvement .= $requeteFiltre;
    if($numBatterieMouvement == 0)

    fait un echo $numBatterieMouvement

    et un echo $pBatterieMouvement avant d'envoyé la requete pour voir si elle est correct.

  3. #3
    Membre Expert
    Avatar de Nothus
    Homme Profil pro
    aucun
    Inscrit en
    Juillet 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : aucun
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 200
    Billets dans le blog
    27
    Par défaut
    Effectivement.

    Un chose que je ne comprends pas : ta fonction a un "return", mais qui n'est associé à rien. Du coup que fais-tu du retour de ta fonction ?

Discussions similaires

  1. [PDO] [Résolu] Requête PDO ne fonctionne pas dans un foreach
    Par Exhaeus dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/05/2014, 10h37
  2. [MySQL] Requêtes UPDATE dans boucles foreach avec array
    Par vinceom92 dans le forum PHP & Base de données
    Réponses: 67
    Dernier message: 16/03/2014, 21h29
  3. [MySQL] Exécution d'une requête dans un boucle foreach
    Par sissi25 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/12/2011, 11h05
  4. [MySQL] Requête dans foreach
    Par Lexarino dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/03/2011, 16h49
  5. Regrouper 3 requêtes dans une seule
    Par LadyArwen dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/06/2003, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo