Problème avec condition IF

animus
WRInaute discret
WRInaute discret
 
Messages: 92
Inscription: 23 Mai 2005

Problème avec condition IF

Message le Mer Aoû 09, 2006 12:03

Bonjour,

J'ai placé une condition dans ma syntae sql afin qu'un message du type "aucun article..." apparaissent lorsqu'il n'y a aucun article dans la catégorie:

$sql = "SELECT COUNT(categorie) AS quantite FROM XXX WHERE categorie LIKE '$categorie'";

if ($quantite == "") {
echo "Aucun article dans cette catégorie";
}

Le pb c'est que le message "Aucun article dans cette catégorie" s'affiche même lorsqu'il y a un article ! ! !

Je cale, merci de m'aider ! :oops:

je vous donne la suite du code:

mysql_connect("sql.free.fr","XXX","XXX");

mysql_select_db("XXX");

$categorie = $HTTP_POST_VARS['categorie'];

$sql = "SELECT * FROM XXX WHERE categorie LIKE '$categorie' ORDER BY 'id' DESC";

$result = mysql_query($sql);

while ($data = mysql_fetch_array($result)) {

echo "<div align='center'> <img src='$data[image]' border='1' width='200' height='160'></div>";
echo "<div align='center'><small><FONT COLOR= #006699><u>Référence:</font></u> $data[id] </small></div>";
echo "<FONT COLOR= #006699><b>Titre:</b></font><g> $data[titre] </g><br><FONT COLOR= #006699> <b>Description:</b> </font> $data[descriptif] <br><br> <FONT COLOR= #006699><b>Prix:</b></font> $data[prix] euro<br> <FONT COLOR= #006699><b>Frais de port:</b></font>$data[port] euro<br><br>";
echo "<FONT COLOR= #006699><b>Lieu:</b></font> $data[ville] - $data[departement]<br>";
echo "<FONT COLOR= #006699><b>Contact:</b></font>$data[mail1]<img src= images/arobase.jpg>$data[mail2]<img src= images/point.jpg>$data[mail3]<br>";
echo "<div align='right'><small><FONT COLOR= #006699><a href='abus.php'>Signaler un abus</a></div></small><br>";
// On s&eacute;pare les resultats
echo '<hr size="4" align="center" width="95%" class="Style1"><br>';

}


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18812
Inscription: 8 Aoû 2004

Message le Mer Aoû 09, 2006 12:44

parce que $quantite n'est pas définie !

il faut d'abord effectuer la requête sql puis appeler cette valeur
Code: Tout sélectionner
$mysql_result=mysql_query($sql);
$row = mysql_fetch_assoc($mysql_result);
if ($row['quantite']=="")

animus
WRInaute discret
WRInaute discret
 
Messages: 92
Inscription: 23 Mai 2005

Message le Mer Aoû 09, 2006 12:52

est ce que c'est cela car ça n'affiche plus rien:
$sql = "SELECT COUNT(titre) AS quantite FROM XXX WHERE categorie LIKE '$categorie'";
$mysql_result=mysql_query($sql);
$row = mysql_fetch_assoc($mysql_result);
if ($row['quantite']==""){
echo "Aucun article dans cette catégorie";
}

merci

animus
WRInaute discret
WRInaute discret
 
Messages: 92
Inscription: 23 Mai 2005

Message le Mer Aoû 09, 2006 12:55

j'ai modifié avec "data" et je reviens au même pb qu'au départ:

$mysql_result=mysql_query($sql);
$row = mysql_fetch_assoc($mysql_result);
if ($data['quantite']==""){
echo "Aucun article dans cette catégorie";
}
?>

il affiche "Aucun article dans cette catégorie" même quand il y en a un !

Au secourrrrrrrrrrrrrrrrrrrrrrrs !

5 minutes plus tard: j'ai remis row à cause de la variable et rien ne marche (pas de conditions exécutées)

Maintenant, j'ai cela:

$sql = "SELECT COUNT(titre) AS quantite FROM XXX WHERE categorie LIKE '$categorie'";
$mysql_result=mysql_query($sql);
$row = mysql_fetch_assoc($mysql_result);
if ($row['quantite']==""){
echo "Aucun article dans cette catégorie";
}


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18812
Inscription: 8 Aoû 2004

Message le Mer Aoû 09, 2006 13:00

Exécute le code sql dans ta console (genre phpmyqdmin) et regarde le contenue de cette colonne.


ltressens
WRInaute impliqué
WRInaute impliqué
 
Messages: 551
Inscription: 2 Avr 2004

Message le Mer Aoû 09, 2006 13:02

tu as modifié $data['quantite'] mais tu a laissé $row = mysql_fetch...

Tu fais un count, donc il ne faut pas tester si la chaine est vide, mais plutot si c'est egal a zero :

Code: Tout sélectionner
$sql = "SELECT COUNT(titre) AS quantite FROM XXX WHERE categorie LIKE '$categorie'";
$mysql_result=mysql_query($sql);
$row = mysql_fetch_assoc($mysql_result);
if ($row['quantite']==0){
echo "Aucun article dans cette catégorie";
}


TrAsKiN
WRInaute discret
WRInaute discret
 
Messages: 136
Inscription: 17 Juil 2006

Re: Problème avec condition IF

Message le Mer Aoû 09, 2006 17:37

animus a écrit:if ($quantite == "") {
echo "Aucun article dans cette catégorie";
}


Essait un truc du genre :

Code: Tout sélectionner
if (empty($quantite)) {
echo "Aucun article dans cette catégorie";
}


ltressens
WRInaute impliqué
WRInaute impliqué
 
Messages: 551
Inscription: 2 Avr 2004

Message le Mer Aoû 09, 2006 18:10

traskin : la variable $quantite n'existe pas !


TrAsKiN
WRInaute discret
WRInaute discret
 
Messages: 136
Inscription: 17 Juil 2006

Message le Mer Aoû 09, 2006 19:21

ltressens a écrit:traskin : la variable $quantite n'existe pas !


:oops: Oops ! j'avais pas vu ! :oops:

animus
WRInaute discret
WRInaute discret
 
Messages: 92
Inscription: 23 Mai 2005

Message le Mer Aoû 09, 2006 20:25

merci, ça marche en remplaçant =="" par >"1"

super sympa et grands mercis encore !


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18812
Inscription: 8 Aoû 2004

Message le Mer Aoû 09, 2006 20:31

non, mettre plutôt >0


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité