[RESOLU] problème syntaxe if...else. Help svp !!!

Eléphant du PHP | 57 Messages

15 août 2012, 13:56

J'ai un p'tit souci (qui a une fâcheuse tendance à me taper sur les nerfs.). si quelqu'un pouvait me débloquer... ça éviterais à mon pc de prendre une baffe (surtout qu'il ne le mérite certainement pas vu que l'erreur doit venir de ma propre bêtise !)

J'vous explique :

J'ai une formulaire pour enregistrer mes visiteurs : marche parfaitement.
J'ai une page "profil" qui doit permettre au membre d'afficher sur son écran les infos qu'il m'a transmis via ce formulaire. Cette page est divisée en 2 parties.

1ère partie : la page affiche, sans conditions, le contenu de certains champs (ex : pseudo, date d'enregistrement, sexe). Ces infos sont obligatoirement présentes dans ma base de données puisque j'impose le remplissage des champs correspondants dans le formulaire d'inscription. La première partie marche nikel ! aucun souci.

2ème partie : la page est sensée afficher le reste du profil (ex : email, adresse postale,... ). Or la transmission ces infos n'étant pas obligatoire lors de l'inscription, pour certains membres, elles existent, pour d'autres membres, la case est vide.

Ce que je voudrais, c'est que l'affichage change en fonction de la présence/absence de chaque donnée. Par exemple, si le membre a rempli la case "mail" dans le formulaire, je veux que sur la page "profil" i l y ai "votre email est : [email protected]". Mais si le membre n'a pas rempli la case "mail", je veux que ça lui affiche "votre email : vous n'avez pas encore donné votre email". Les phrases sont bidons mais c'est pour vous expliquer ce que je veux.


Je comptais faire un truc du genre : si la donnée existe, affiche telle phrase sinon affiche l'autre phrase. donc avec il ... echo... else ...echo.
J'ai essayé un nombre impressionnant de possibilités et rien ne marche. au secours ! s'il vous plait ! Merci d'avance pour vos réponses
Modifié en dernier par Angela81 le 15 août 2012, 15:56, modifié 1 fois.

Mammouth du PHP | 2278 Messages

15 août 2012, 15:04

Trop vague:
Je comptais faire un truc du genre : si la donnée existe, affiche telle phrase sinon affiche l'autre phrase. donc avec il ... echo... else ...echo.
J'ai essayé un nombre impressionnant de possibilités et rien ne marche. au secours ! s'il vous plait ! Merci d'avance pour vos réponses
$
mail = $resultat['mail'];
if ($mail !== "")
{
   print "votre mail est $mail";
}
else
{
   print "votre mail est inconnu";
}
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 57 Messages

15 août 2012, 15:33

Merci pour ta réponse Sirakawa.

En fait ce que j'avais essayé de faire, c'était ça :
Là c'est pour l'affichage du champs 'passions" (à la place d'email ou autre)
 <?php 
 if (isset($data['passions']) 
 {
  echo 'Vos passions :'.$data['passions'];
 }
 else {
 echo 'Vos passions : vous n\'avez pas renseigné de champs';
  }
 ?>
 
ce petit bout de code est un extrait de cette page
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>espace_membre</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<link rel="stylesheet" href="../tech/style1.css" />
</head>
<body>
<?php include("entete.php"); ?>
<?php include("cadre_gauche.php"); ?>
<?php include("cadre_droite.php"); ?>
<?php include("menu_top.php"); ?>

<div id="corps">
<a href="../pages/espace_membre.php"> Retour vers l'espace Membre</a>
<p>Profil de <?php echo $_SESSION['login'] ?></p>

<?php //récupération des données dans la base pour les afficher dans le tableau 
// connexion à la base 
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  
    mysql_select_db('gv2',$db)  or die('Erreur de selection '.mysql_error()); 
// preparation de la requete
$sql = ('SELECT * FROM membres WHERE pseudo="'.$_SESSION['login'].'"');
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
 $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
 // on récupère le résultat sous forme d'un tableau
$data = mysql_fetch_array($req); 
?>

<!-- Affichage des données à l'écran -->
<h1>Vos identifiants sur ce site</h1>
<p>
Votre pseudo : <?php echo ''.$data['pseudo'] ?>
<br/ ><br />
Vous êtes adhérent depuis le :<?php echo ''.$data['date_enregistrement']; ?> 
</p>

<h1>Vous</h1>
<p>

<!-- affichage du champs 'passions' -->
 <?php 
 if (isset($data['passions']) 
 {
  echo 'Vos passions :'.$data['passions'];
 }
 else {
 echo 'Vos passions : vous n\'avez pas renseigné de champs';
  }
 ?>
</p>



<?php// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close (); 
?>
</div>
<?php include("pdp.php"); ?>
</body>
</html>
et ça donne comme résultat :
( ! ) SCREAM: Error suppression ignored for
( ! ) Parse error: syntax error, unexpected '{' in C:\wamp\www\Genealogie V6 d\pages\profil.php on line 47

Voilà !

Eléphant du PHP | 57 Messages

15 août 2012, 15:54

Donc, après étude de la réponse de Sirakawa, et bidouillage à ma sauce, ça donne :

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>espace_membre</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<link rel="stylesheet" href="../tech/style1.css" />
</head>
<body>
<?php include("entete.php"); ?>
<?php include("cadre_gauche.php"); ?>
<?php include("cadre_droite.php"); ?>
<?php include("menu_top.php"); ?>

<div id="corps">
<a href="../pages/espace_membre.php"> Retour vers l'espace Membre</a>
<p>Profil de <?php echo $_SESSION['login'] ?></p>

<?php //récupération des données dans la base pour les afficher dans le tableau 
// connexion à la base 
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  
    mysql_select_db('gv2',$db)  or die('Erreur de selection '.mysql_error()); 
// preparation de la requete
$sql = ('SELECT * FROM membres WHERE pseudo="'.$_SESSION['login'].'"');
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
 $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
 // on récupère le résultat sous forme d'un tableau
$data = mysql_fetch_array($req); 
?>

<!-- Affichage des données à l'écran -->
<h1>Vos identifiants sur ce site</h1>
<p>
Votre pseudo : <?php echo ''.$data['pseudo'] ?>
<br/ ><br />
Vous êtes adhérent depuis le :<?php echo ''.$data['date_enregistrement']; ?> 
</p>

<h1>Vous</h1>
<p>

<!-- affichage du champs 'passions' -->
 <?php 

 if ($data['passions'] !=="") 
 {
  echo 'Vos passions :'.$data['passions'];
 }
 else {
 echo 'Vos passions : vous n\'avez pas renseigné de champs';
  }
 ?>
</p>



<?php// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close (); 
?>
</div>
<?php include("pdp.php"); ?>
</body>
</html> 
L'extrait qui me coinçait :
 <!-- affichage du champs 'passions' -->
 <?php 

 if ($data['passions'] !=="") 
 {
  echo 'Vos passions :'.$data['passions'];
 }
 else {
 echo 'Vos passions : vous n\'avez pas renseigné de champs';
  }
 ?>
</p>  
et vous savez quoi ? ça marche ! Merci Sirakawa