Undefined variable [Résolu/Fermé]

Signaler
-
Messages postés
120
Date d'inscription
mercredi 17 août 2011
Statut
Membre
Dernière intervention
12 février 2013
-
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

Messages postés
457
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
22 mai 2018
56
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
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...
Messages postés
457
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
22 mai 2018
56
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.
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...
Messages postés
457
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
22 mai 2018
56
heu... redonne ton code avec la modif?
<?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";
	}
Messages postés
457
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
22 mai 2018
56
.... 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...
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
Finalement j'ai enlevé le contenu de la parenthèse fetch et ça marche, merci beaucoup!
Messages postés
120
Date d'inscription
mercredi 17 août 2011
Statut
Membre
Dernière intervention
12 février 2013
13
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.