Variable non définie.

Résolu/Fermé
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 - 21 déc. 2021 à 13:37
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 - 21 déc. 2021 à 17:29
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 38384 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 janvier 2025 4 727
Modifié le 21 déc. 2021 à 17:12
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 38384 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 janvier 2025 4 727
21 déc. 2021 à 14:46
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 vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024
21 déc. 2021 à 16:37
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 38384 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 janvier 2025 4 727
21 déc. 2021 à 17:12
il manque un point virgule ligne 6
0
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024
21 déc. 2021 à 17:29
Ok.
Cela fonctionne.
Un grand merci!
Problème résolu.
0