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. 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.
    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...
      1. heu... redonne ton code avec la modif?
      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";
        	}
      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...
      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
      5. Finalement j'ai enlevé le contenu de la parenthèse fetch et ça marche, merci beaucoup!
    2. 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.
      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...
        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