If et else dans boucle while

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

J'ai un moteur de recherche de plantes par critères et je voudrais afficher un message d'erreur quand il n'y a pas de résultat mais je n'y arrive pas

Voici mon code:
<?php

include("connect_bdd.php");


$types ="";
$couleur="";
$duree="";
$feuillage="";
$exposition="";


if(isset($_POST['types']))
{
$types = htmlentities($_POST['types']);
$couleur = htmlentities($_POST['couleur']);
$duree= htmlentities($_POST['duree']);
$feuillage = htmlentities($_POST['feuillage']);
$exposition = htmlentities($_POST['exposition']);



$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 ne correspond aux critères choisis</span><br><br>";
}
}
}
?>

Quelqu'un pourrait-il m'aider?
Merci
A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Si tu n'utilises pas mysql ou que tu souhaites que ton code soit compatible avec d'autres SGBD :

if ($data = $req->fetch()) {
    do {
        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>";
    } while ($data = $req->fetch());
} else {
    echo "<span class=\"affiche\" style=\"color:red;font-weight:bold;font-size:20px;position:relative;left:250px;top:450px;\"><br><br>Aucune plante ne correspond aux critères choisis</span><br><br>";
}


Au passage, htmlentities doit être utilisé pour afficher des données en html et surtout pas pour protéger tes données avant de les utiliser en sql.

Bonne journée
0
joncavidulienne Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour votre aide . ça marche!!
0
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
Si tu utilise mysql, et que tu te moque de la compatibilité avec les autres moteur, tu peut utiliser
if($req->rowCount()){
//Mets ici le reste de ton code
}else{
//ici ton message d'erreur
}

Sinon, l'autre solution est de faire une requête count avec les même paramètre.
-1