Trouver une rangée sachant qu'elle est unique

Bonjour,

Ceci fonctionne parfaitement

$Users = mysqli_query($db,"select username FROM `users` where `user_id`=".$UserID );
while($User = mysqli_fetch_array($Users))
	{
	$UserName = $User['username'];
	}

Toutefois je suis certain que je ne trouverai qu'une seule Row car User_id est une clé unique, par conséquent je trouve dommage d'utiliser While sachant que la "boucle" ne sera parcourue qu'une seule fois.

Comment trouver directement s la seule entrée qui répond au Where ?

Grand merci d'avance pour votre aide
Windows / Chrome 126.0.0.0

2 réponses

  1. Bonjour,

    Tu peux utiliser mysqli_fetch_assoc pour récupérer directement la seule entrée. Voici un exemple concret :

    $UserID = 123; // Exemple de UserID
    $Users = mysqli_query($db, "SELECT username FROM `users` WHERE `user_id` = $UserID");
    $User = mysqli_fetch_assoc($Users);
    if ($User) {
        $UserName = $User['username'];
    }

    Cette méthode récupère directement la seule ligne sans utiliser de boucle.

    0
    1. Merci, le IF est-il nécessaire si je suis certain qu'il y en a un et un seul ?
      Ceci fonctionne-t-il de même ?

      $User = mysqli_fetch_assoc($Users);
      $UserName = $User['username'];
      0
    2. Contributeur
      @Herve_be

      Cela fonctionnera jusqu'au jour où la certitude se transformera en supposition.

      Pourquoi cette question, ne sais-tu pas ce que fait le IF?

      0
    3. @yg_be

      A quoi sert il de coder IF si la réponse est toujours TRUE ?

      0
    4. Contributeur
      @Herve_be

      Elle est toujours TRUE, jusqu'au jour où elle ne le sera plus.

      Coder, c'est se préparer à l'imprévu.

      0
    5. @yg_be

      OK, merci, je vais ajouter IF (1 == 1) devant toutes mes instructions, on ne sait jamais ...

      0