Undefined variable

Résolu
Bonjour,

J'ai un souci d'undefined variable, et je ne trouve pas de solution:
(Notice: Undefined variable: content in C:\wamp\www\pdf.php on line 17)

La ligne 17 correspond à la ligne "Prénom" dans $content...

Pourriez-vous m'aider? Merci!

<?php

try
{
	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

$reponse = $bdd->query("SELECT nom, possesseur FROM jeux_video WHERE possesseur='JG'");

while ($donnees = $reponse->fetch())
{$content.= 
	"Nom : ".$donnees['nom']."rn".
	"Prenom : ".$donnees['possesseur']."rn";
	}


5 réponses

  1. bien, déja a tu essayer de faire un print_r de donnée dans ton while? cela pourrait t'aider, essaye aussi dans ta requete de retirer l'espace apres la virgule de nom
    0
    1. En retirant l'espace, j'ai du coup 2 undefined variables (ligne 16 et 17).
      Où devrai-je placer le print_r ? Je n'utilise qu'echo en général, je suis en débutant...
      0
      1. Lorsque tu fais
        while ($donnees = $reponse->fetch())
        {


        tu rajoute alors le
        print_r($donnees);


        ca devrait te donner l'architecture de ta variable. et comme tu utilise pdo, tu peux placer dans le fetch, l'un de c'est parametres:
        PDO::FETCH_BOTH
        PDO::FETCH_ASSOC
        PDO::FETCH_BOUND
        PDO::FETCH_CLASS
        PDO::FETCH_INTO
        PDO::FETCH_Lazy
        PDO::FETCH_NUM
        PDO::FETCH_OBJ
        


        je te recommande le assoc qui te fourni un tableau tel que tu le demande par la suite.
        0
        1. Avec le print_r j'obtiens un "Fatal error: Can't use function return value in write context in C:\wamp\www\pdf.php on line 14" ligne 14...
          0
          1. heu... redonne ton code avec la modif?
            0
          2. <?php
            
            try
            {
            	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
            }
            catch(Exception $e)
            {
                    die('Erreur : '.$e->getMessage());
            }
            
            $reponse = $bdd->query("SELECT nom possesseur FROM jeux_video WHERE possesseur='JG'");
            
            while (print_r($donnees) = $reponse->fetch())
            {$content.= 
            	"Nom : ".$donnees['nom']."rn".
            	"Prenom : ".$donnees['possesseur']."rn";
            	}
            0
          3. .... j'ai dis avec la modif, pas en ayant pas mis le print_r et en ayant supprimmer la virgule qui est obligatoire mais pas l'espace...

            Tiens:

            <?php 
            
            try{ 
             $bdd=new PDO('mysql:host=localhost;dbname=test', 'root', ''); 
            }catch(Exception $e){ 
                    die('Erreur : '.$e->getMessage()); 
            } 
            $con=''; 
            $rep=$bdd->query("SELECT nom,possesseur FROM jeux_video WHERE possesseur='JG'"); 
            while($don=$rep->fetch($rep,PDO::FETCH_ASSOC)){ 
             $con.='Nom : '.$don['nom'].'<br>Prenom : '.$don['possesseur'].'<br>'; 
            }


            un code plus concis, et sans problème normalement et le print_r c'est dans le while pas dans la condition.
            le fetch doit avoir comme premier paramètre le retour du query...
            0
          4. Merci de prendre ce temps pour moi.
            En revanche, quand j'utilise ton code, voilà ce qui en ressort:

            Warning: PDOStatement::fetch() expects parameter 1 to be long
            0
          5. Finalement j'ai enlevé le contenu de la parenthèse fetch et ça marche, merci beaucoup!
            0
        2. Bonjour,

          Au cas où tu voudrais quand même trouver la solution à ton code, on ne peut faire
          $content.= ...
          qu'à la condition que la variable "$content" soit déjà définie quelque part.

          Ajoute
          $content=null;
          juste avant de rentrer dans la boucle.
          0