Variable non définie.

Résolu
Max747 Messages postés 258 Date d'inscription   Statut Membre Dernière intervention   -  
Max747 Messages postés 258 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je cherche à extraire la valeur d'un champ username à partir de son identifiant id d'une table inscriptions.
J'utilise ce script que voici:
<?php
include ('connexion.php');
$id=21;
$requete = $connection->prepare("SELECT id, username FROM inscriptions WHERE id=:id");
						$requete->execute(array(':id'=>$id));
						while ($row = $requete->fetch(PDO::FETCH_ASSOC))
							{
								$username=($row['username']);								
							}
echo $username;	
?>

Mais cela ne fonctionne pas.
Voici le message d'erreur qui apparait:
Notice: Undefined variable: username in C:\wamp64\www\_qcm\poll\test.php on line 10

Quelque m'échappe.
Cependant je ne trouve pas la cause de cette erreur.
Pourriez vous m'aider à résoudre ce problème?
Merci d'avance.






Configuration: Windows / Firefox 52.0

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Déjà.. pas besoin d'un while quand tu n'as qu'une seule ligne à récupérer en bdd
$row = $requete->fetch(PDO::FETCH_ASSOC));
$username = !empty($row['username']) ? $row['username']: '';        
echo $username ; 


0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Et comme te l'as dit Yg_be dans ton autre discussion ( que j'ai supprimée pour cause de doublon !! ) .. il se peut que tu n'aies aucun user avec l'id 21 ...

Ce qui faisait que ton code ne rentrait jamais dans la boucle while ...
Avec le code que je viens de te donner tu n'auras plus de message d'erreur y compris si ta requête ne retourne pas de résultat.
0
Max747 Messages postés 258 Date d'inscription   Statut Membre Dernière intervention  
 
J'avais compris $id 21.
Vous voudrez bien m'en excuser svp.
En fait je viens de vérifier la table inscriptions et il n'y a pas dans le champ id la valeur 21 effectivement.
Par contre l ' id 22 existe bien.
Voici le script modifié:
<?php
include ('connexion.php');
$id=22;
$requete = $connection->prepare("SELECT id, username FROM inscriptions WHERE id=:id");
						$requete->execute(array(':id'=>$id));
							$row = $requete->fetch(PDO::FETCH_ASSOC)
							$username = !empty($row['username']) ? $row['username']: '';								
echo $username;	
?>

Néanmoins il subsiste un message d'erreur que voici au niveau syntaxe que je ne parviens pas à déceler:

Je ne trouve pas qu'elle est cette erreur de syntaxe.
Ainsi si vous pouvez me l'indiquer, je vous en serai bien reconnaissant.
Merci d'avance.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
il manque un point virgule ligne 6
0
Max747 Messages postés 258 Date d'inscription   Statut Membre Dernière intervention  
 
Ok.
Cela fonctionne.
Un grand merci!
Problème résolu.
0