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 :

Utilliser plusieurs fois une variable [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 14
    Points
    14
    Par défaut Utilliser plusieurs fois une variable
    Bonjour,
    J'ai besoin d'une variable deux fois pour me servir de paramètre pour l'appel d'une fonction et ensuite pour parcourir cette variable (qui est un PDOSTatement donc d'après ce que je sais un tableau associatif).
    Problème cela ne marche pas, comme si l'utilisation la première fois de la variable la vidait de son contenu et que je ne pouvais plus la parcourir pour l'affichage de ses données.

    La méthode qui me permet de récupérer mon objet PDOSTAtement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    public function recupSujet(ConnexionPDO $pdo, $IdSsCat)
    	{
    		$sql = "SELECT * FROM sujet WHERE Id_sscat=".$IdSsCat;
    		$resultat = $pdo->getDBH()->query($sql);
    		return $resultat;
    	}?>
    la deuxième méthode qui sera appellée grace au résultat obtenu de la première méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    public function recupAuteurSujet($pdo, $listeUtilisateur)
    	{
    		$resultat = array();
    		while($liste = $listeUtilisateur->fetch())
    		{
    			$sql = "SELECT * FROM utilisateur WHERE Id_utilisateur=".$liste['Id_utilisateur'];
    			$tutu = $pdo->getDBH()->query($sql);
    			$resultat[] = $tutu;	//le tableau commence à zero
    		}
    		return $resultat;
    	}?>
    Les appels de mes méthodes stockées dans mes variables.
    La variable que je n'arrive pas à utiliser deux fois est $recupSujet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    //récupère la liste de tous les sujets d'une sous-catégorie données
    $recupSujet = TraitementFactory::getInstance()->recupSujet($SousCategorie);
    //récupère la liste de tous les auteurs des sujets (à partir de l'id des auteurs stokés dans la table sujet)
    $recupAuteur = TraitementFactory::getInstance()->recupAuteurSujet($recupSujet);	//retourne un array
    ?>
    Le script qui utilise ma variable :
    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
    <?php
    while($affichageSujet = $recupSujet->fetch())
    	{
    		echo "test1";
     
    		echo "test2";
    		foreach($recupAuteur as $key => $value)	//on récupère ce qu'il y a dans l'array => un PDOStatement
    		{
    			echo "test3";
    			while($auteur = $value->fetch())	//on affiche chaque auteur de sujet
    			{
    				echo "test4";	
    ?>	
    			<tr>
    				<td width="4%">img</td><td width="56%"><?php echo $affichageSujet['titre_sujet']; ?></td><td width="7%">test</td>
    				<td width="10%"><?php echo $auteur['pseudo']?></td>
    				<td width="8%">test</td><td width="15%">test</td>
    			</tr>
    <?php
    			}
    		}
    	}	?>
    Merci d'avance pour votre réponse.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Bonsoir,
    Dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($liste = $listeUtilisateur->fetch())
    Précise le fetch_style en PDO::FETCH_NUM, sinon tu te retrouves avec un resultset qui comprend à la fois un array à indice et à clés.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 14
    Points
    14
    Par défaut
    A noter qu'avec ce script ca marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $IdSousCat = 3;	
    $SousCategorie = new SousCategorie();
    $SousCategorie->initSousCategorie3($IdSousCat);	
    $recupSujet = TraitementFactory::getInstance()->recupSujet($SousCategorie);
    $resultat3 = TraitementFactory::getInstance()->recupAuteurSujet($recupSujet);	
    //$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
    foreach($resultat3 as $key => $value )	//la j'ai un PDOStatement
    {
    	while($test = $value->fetch())
    	{
    		echo $test['pseudo'];
    	}
    }
    Et pourtant j'ai pas précisé le fetch style (mais je retiens l'idée et j'essai).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Preg_replace remplacer plusieurs fois une variable
    Par C45T0R dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2008, 14h39
  2. Réponses: 2
    Dernier message: 22/05/2006, 14h08
  3. Réponses: 3
    Dernier message: 15/05/2006, 19h04
  4. [Struts javascript] ouvrir plusieurs fois une popup
    Par jc_romeo dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/03/2006, 09h36
  5. Réponses: 5
    Dernier message: 05/01/2006, 18h43

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