Php contrôler l'existance d'une valeur


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

Php contrôler l'existance d'une valeur

Message le Lun Avr 12, 2010 19:07

La fonction ci-dessous affiche une description.
Code: Tout sélectionner
<div class="description">
<? if (@$positions[2]->title) {$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);} ?>
<? echo @$strtitle;

if (isset($fDisplay[3]))

{

   foreach($fDisplay[3] as $field)

   {

      adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);

   }

} ?></div>
Je souhaiterai contrôler si la description existe ou pas.
Si elle existe et uniquement si elle existe, j'aimerai afficher une div à la suite de la première div (celle contenant la description).
Je ne vois pas trop comment m'y prendre pour contrôler la condition. Un coup de main serait le bienvenu.

Merci.


VisitezMonSite
WRInaute passionné
WRInaute passionné
 
Messages: 1147
Inscription: 7 Mai 2009

Re: Php contrôler l'existance d'une valeur

Message le Lun Avr 12, 2010 19:11

Elle est ou la description?
Est-ce qu'il suffit de tester l'existence de $strtitle?


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

Re: Php contrôler l'existance d'une valeur

Message le Lun Avr 12, 2010 19:15

Oui.


VisitezMonSite
WRInaute passionné
WRInaute passionné
 
Messages: 1147
Inscription: 7 Mai 2009

Re: Php contrôler l'existance d'une valeur

Message le Lun Avr 12, 2010 19:20

Dans ce cas la il faut faire comme ca (ou adapter un peu je ne connais pas le contexte de ton script, le contenu des variables, etc.)

Code: Tout sélectionner
<? if (@$positions[2]->title) {
$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);
echo '<div class="description">';
echo @$strtitle;
if (isset($fDisplay[3]))
{
   foreach($fDisplay[3] as $field)
   {
      adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);
   }
}
echo '</div>';
} ?>


Si c'est pas ca, merci de me donner plus d'infos. c'est toujours interressant de savoir.


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

Re: Php contrôler l'existance d'une valeur

Message le Lun Avr 12, 2010 19:56

Code: Tout sélectionner
<div class="description">
<? if (@$positions[2]->title) {
$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);
echo @$strtitle;
if (isset($fDisplay[3]))
{
   foreach($fDisplay[3] as $field)
   {
      adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);
   }
}
echo '</div><div à afficher></div>';
} ?>
C'est plutôt comme ceci mais j'ai déjà tenté, sans résultat. La div à afficher est toujours présente que la description existe ou pas.


VisitezMonSite
WRInaute passionné
WRInaute passionné
 
Messages: 1147
Inscription: 7 Mai 2009

Re: Php contrôler l'existance d'une valeur

Message le Lun Avr 12, 2010 20:18

salva a écrit:C'est plutôt comme ceci mais j'ai déjà tenté, sans résultat. La div à afficher est toujours présente que la description existe ou pas.


est-ce que la description est @$positions[2]->title?
Si le fait que $strtitle soit vide suffit pour determiner qu'il n'y a pas de description tu peux changer et ajouter une condition if ($strtitle != "") { :

Code: Tout sélectionner
<div class="description">
<? if (@$positions[2]->title) {
$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);
if ($strtitle != "") {
echo @$strtitle;
if (isset($fDisplay[3]))
{
   foreach($fDisplay[3] as $field)
   {
      adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);
   }
}
echo '</div><div à afficher></div>';
}
} ?>


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

Re: Php contrôler l'existance d'une valeur

Message le Mar Avr 13, 2010 13:58

Il suffisait de faire le contrôler sur $row qui contient la description.
Code: Tout sélectionner
               <? if (@$positions[2]->title) {$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);} ?>
               <? echo @$strtitle;
               if (isset($fDisplay[3]))
               {
                  foreach($fDisplay[3] as $field)
                  {

                     adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);   

                  }
               }
                                        if ($row != "") {
                                        echo '</div><div à afficher></div>';
                                        }
                                        else
                                        {
                                        echo '</div>';
                                        }?>


Merci pour ton aide quand même. Elle m'a aidé à réfléchir comme il fallait :)


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

Re: Php contrôler l'existance d'une valeur

Message le Mer Avr 14, 2010 14:19

Finalement, j'ai redirigé la page en 301 sur la home.
Code: Tout sélectionner
<? if (@$positions[2]->title) {$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);} ?>
               <? echo @$strtitle;
               if (isset($fDisplay[3]))
               {
                  foreach($fDisplay[3] as $field)
                  {
                  adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);   
                  }
               }
                                        if ($row != "") {
                                        echo '</div><div à afficher></div>';
                                        }
                                        else
                                        {
                                        header("HTTP/1.1 301 Moved Permanently");
                                        header("Location: http://www.ndd.tld/");
                                        }?>

Maintenant je souhaiterai que cette redirection affiche sur la home un message indiquant que l'annonce n'existe plus.
J'ai pensé ajouter sur l'index.php une variable contenant le message qui s'afficherait uniquement lors des redirections issues du code ci-dessus (et pas d'autres).

Je ne vois pas comment marquer les redirections qui déclencheraient l'affichage du message.

Edit : tout compte fait, je passe la page en 410.


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 0 invités