Problème avec if

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec if

par santaclos » 22 août 2007, 09:32

tu fais un mysql_num_rows() de ton $result et que si $result egal zero tu n'affiche rien sinon tu fais ton while en gros c'est ca ;)

par zeus » 22 août 2007, 08:05

Qu'est-ce que tu as essayé ? ;)

Tu n'auras pas de code tout fait et la solution de Ryle est la bonne solution.
Essayes donc de l'implémenter et reviens nous voir quand tu es bloqué ou quand tu as une question sur le fonctionnement de ton application ;)

par Invité » 22 août 2007, 08:01

La fonction mysql_fetch_array() retourne un array .... un tableau ne pouvant être égal à zéro, ton if n'est pas bon. Par ailleurs, si tu rentre dans le while, c'est que tu as au moins un enregistrement de trouvé.

Il te faut donc soit utiliser un compteur ou un flag pour savoir si tu rentre dans le while, soit récupérer le nombre d'enregistrement avec un COUNT(*) ou un mysql_num_rows()
Merci pour ton aide.

J'ai essayé mais je n'y arrive toujours pas :?

par Ryle » 22 août 2007, 00:19

La fonction mysql_fetch_array() retourne un array .... un tableau ne pouvant être égal à zéro, ton if n'est pas bon. Par ailleurs, si tu rentre dans le while, c'est que tu as au moins un enregistrement de trouvé.

Il te faut donc soit utiliser un compteur ou un flag pour savoir si tu rentre dans le while, soit récupérer le nombre d'enregistrement avec un COUNT(*) ou un mysql_num_rows()

Problème avec if

par Invité » 21 août 2007, 22:31

Bonjour,

Le code ci-dessous me permet d'afficher les anniveraires du jour. J'ai rajouté un if afin que si il n'y a pas d'anniveraire, cela me l'indique.

Si je ne mets pas le if, il m'afiche bien le ou les anniversaires

Si je mets le if, il m'affiche qu'un anniversaire même si plusieurs personnes sont nés le même jour.

Comment cela se fait-il ?
$formatdate = date("m-d");
$annee = date("Y");

$requete ="SELECT

DISTINCT

member_lastname as nom,
member_firstname as prenom,
member_id as id,
DATE_FORMAT(member_date_birth, '%d/%m/%Y') as datefr

FROM member

WHERE member_date_birth like '%-$formatdate' ORDER BY member_date_birth ASC ";   

$result = mysql_query($requete) or die ("probleme " .mysql_error()); 
$row = mysql_fetch_array($result); 

echo "<table width=\"350\" border=\"1\" cellspacing=\"5\" align=\"center\" class=\"noir\">";
echo "<td><center><b>Anniversaire(s) du jour</b><br>";

$naissance = $row['datefr'];
$annee_naissance = substr($naissance, 6 ,4);
$age = ($annee - $annee_naissance);

$prenom = $row['prenom'];
$nom = $row['nom'];
$id = $row['id'];

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

if ($row == 0)
{ 
echo "Pas d'anniversaire"; 

}

else {

echo "$prenom $nom</a> ($age ans)<br>";

}

}