If et else dans boucle while en PDO

Bonjour,

J'ai fait un moteur de recherche à partir des critères de plantes.
Je voudrai qu'un message d'erreur s'affiche s'il n'y a pas de plantes correspondant aux critères indiqués
Voici mon code PHP

$req=$bdd->query( "SELECT nom FROM VEGETAUX WHERE codetype=$types AND codeduree=$duree AND codecouleur=$couleur AND codefeuillage=$feuillage AND codeexposition=$exposition");

while($data=$req->fetch())

if($data['nom']!="")
{
echo "<span class=affiche style='color:green;font-weight:bold;font-size:20px;position:relative;left:250px;top:450px;<br><br>'><a href='plantes.php?nom=$data[nom]'> $data[nom]</a></span><br><br>";
}
else
{
echo "<span class=affiche style='color:red;font-weight:bold;font-size:20px;position:relative;left:250px;top:450px;<br><br>'>il n'y a pas de plantes correspondant aux criteres choisis</span><br><br>";
}
}

Il doit y avoir un problème au niveau du if et du else: quand il y a des réponses ça marche mais quand il n'y a pas de plante rien ne s'affiche.
Pourriez-vous me dire où est l'erreur?
Merci pour votre aide

2 réponses

  1. Merci pour la réponse rapide mais j'ai testé et je n'ai toujours pas le message d'erreur.
    Par contre j'ai bien la liste des plantes correspondant aux critères.Une autre idée peut-être?
    1. Bonsoir,
      Pas mal d'erreurs de syntaxe en PHP et en HTML :
      $req=$bdd->query("SELECT nom FROM VEGETAUX WHERE codetype='".$types."' AND codeduree='".$duree."' AND codecouleur='".$couleur."' AND codefeuillage='".$feuillage."' AND codeexposition='".$exposition."'");
      
      while($data=$req->fetch()) {
      	if(!empty($data['nom'])) {
      		echo "<span class=\"affiche\" style=\"color:green;font-weight:bold;font-size:20px;position:relative;left:250px;top:450px;\"><br><br><a href=\"plantes.php?nom=".$data['nom']."\">".$data['nom']."</a></span><br><br>";
      	} else {
      		echo "<span class=\"affiche\" style=\"color:red;font-weight:bold;font-size:20px;position:relative;left:250px;top:450px;\"><br><br>Aucune plante correspondante aux critères choisis</span><br><br>";
      	}
      }

      Cordialement.