Probleme avec des conditions

Eléphant du PHP | 169 Messages

15 févr. 2007, 16:25

bonjour,

j'ai créer une table avec plusieur champs dont un champ "nom_upload"qui contient le nom d'un fichier uploadé.

j'essaie au niveau de l'affichage da ma page, de faire une condition pour dire :
SI le champ "nom_upload" contient quelques chose
{ affiche ce message }

SINON
{ affiche ce message }

voici ce que j'ai fais :
$valeur = $_GET['info'];
$donnee_sql = " SELECT * FROM agenda WHERE id_agenda = '$valeur' ";
$affichage_donnee = mysql_query ($donnee_sql);
$resultat = mysql_fetch_array ($affichage_donnee);
$id = $valeur;

$piece_jointe = $resultat['nom_pdf_agenda'];
if (isset($piece_jointe))
	{echo '<strong>Télécharger le programme au format PDF</strong><a href='.$resultat['nom_pdf_agenda'].' />'.$resultat['nom_pdf_agenda'].'</a>';}
else 
	{ echo 'aucun programme disponible pour l\'instant';}
sa ne fonctionne pas comme je voudrais car, qu'il y est ou pas quelques choses de renseigner dans le champs "nom_upload" il m'affiche toujours la meme condition "SI"

pourquoi ? ou est on erreur de syntax ? merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 févr. 2007, 16:31

Tu dois tester en plus la valeur à savoir si elle est vide ou pas. Elle existe mais peut être vide c'est pour ça que ça ne passe pas au else. Rajoutes cette conditions ça devrait le faire ;)

Eléphant du PHP | 169 Messages

15 févr. 2007, 16:42

merci pour cette réponse, mais pourrais tu me donné un exemple car je suis un peu perdu.
encore merci :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 févr. 2007, 16:56

La fonction isSet() te permet de tester si une variable est définie. Hors ta variable $piece_jointe est nécessairement définie puisque tu la déclares toi même sur la ligne précédente :
$piece_jointe = $resultat['nom_pdf_agenda']; 
if (isset($piece_jointe)) {
  ...
}
Ce qu'il te faut tester c'est si cette variable est vide ou non. Pour cela tu peux utiliser la fonction empty() (qui retournera vrai si la variable est vide), tu peux aussi la comparer à une chaine vide ( == '' ou bien != '' selon ce qu'il te faut), voire même regarder la longueur de la chaine avec strlen() et vérifier qu'elle fait plus de 0 caractères :)

Selon la méthode qui te convient le mieux :
if (!empty($piece_jointe)) {
  ...
}
if ($piece_jointe != '') {
  ...
}
if (strlen($piece_jointe) > 0) {
  ...
}
...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 169 Messages

15 févr. 2007, 17:00

Super, merci pour ton aide
@+

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 févr. 2007, 17:01

oh l'autre comment il m'a chipé mon client !!! :langue: ! hihi

Bon je n'ai rien à ajouter, c'est tout du clair :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 févr. 2007, 17:09

lol, ben t'étais parti faire le service en salle alors je me suis occupé du comptoir ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...