Soucy d'un echo avec une condition

Résolu
Bonjour,

j'ai fais ce code

<?php
if ($comp['ami_from'] != $data1['membre_id'])
{
echo '<a href="liste_d_ami.php?action=add&amp;membre_pseudo='.urlencode($data1['membre_pseudo']).'" title="Ajouter un ami">Ajouter un ami</a><br />';
}
else
{
echo '<strong>ce membre fait parti de vos amis</strong><br />';
}
?>


mais le soucy c'est qui m'affiche toujours Ajouter un ami et si je vais sur un profil de mon amis il me met toujours Ajouter un ami hors il devrait me mettre ce membre fait parti de vos amis car il est mon amis mais cette echo ne fonctionne pas

merci de votre aide
Configuration: Windows XP
Internet Explorer 7.0

18 réponses

  1. Bsr

    Liste le contenu des tes variables pour vérifier ce qui cloche

    Ajoute le code comme ci-dessous pour débogger

    <?php
    echo "<pre>";
    var_dump($comp);
    var_dump($datat1);
    echo "</pre>";
    if ($comp['ami_from'] != $data1['membre_id'])
    {
    echo '<a href="liste_d_ami.php?action=add&membre_pseudo='.urlencode($data1['membre_pseudo']).'" title="Ajouter un ami">Ajouter un ami</a><br />';
    }
    else
    {
    echo '<strong>ce membre fait parti de vos amis</strong><br />';
    }
    ?>
    1. merci là il met met

      NULL
      NULL

      donc comment je doit le mettre pour afficher soit l'un où l'autre

      merci
      1. Hum c'est pas normal que tu obtiennes null ! Ca signifie que tes variables n'existent pas

        Elles proviennent d'où tes variables $comp['ami_from'] et $data1['membre_id'] ?
        1. en faite à la base j'ai mis ce code :

          //On compte le nombre de demande en cours et on met quelques liens
          $demande_ami = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_amis 
          WHERE ami_to = '.intval($_SESSION['id']).' AND ami_confirm = "0"'), 0);
          
          //Cette ligne va permettre d'afficher 0 plutôt qu'un vide
          if (empty($demande_ami)) $demande_ami=0;
          
          echo '<a href="liste_d_ami.php?action=add&amp;membre_pseudo='.urlencode($data1['membre_pseudo'])
          .'" title="Ajouter un ami">Ajouter un ami</a>
          <br />';
          


          et aprés je me suis dit pk pas de mettre un echo pour dire quil est déjà mon amis

          et si je reprend la liste d'amis qui fonctionne bien et qui comprend que le membre fait dejà parti de ma liste donc il faudrais remettre ce code mais j'ai éssayé mais ça n'a pas marché

          donc voilà le code dans ma page liste d'ami où il comprend

          //On vérifie que le pseudo renvoit bien quelque chose :o
          
          $requete = mysql_query("SELECT membre_id, COUNT(*) AS nbr FROM forum_membres 
          WHERE membre_pseudo = '".$pseudo_d."'
          GROUP BY membre_pseudo") or die(mysql_error());
          $data = mysql_fetch_assoc($requete);
          $pseudo_exist = $data['nbr'];
          $i = 0;
          if(!$pseudo_exist)
          {
          echo '<p>Ce membre ne semble pas exister<br />
          Cliquez <a href="./liste_d_ami.php?action=add">ici</a> pour réessayer</p>';
          $i++;
          }
          $deja_ami = mysql_result(mysql_query("SELECT COUNT(*) AS nbr FROM forum_amis 
          WHERE ami_from = '".intval($_SESSION['id'])."' AND ami_to = '".$data['membre_id']."'
          OR ami_from = '".intval($_SESSION['id'])."' AND ami_to = '".$data['membre_id']."'"),0);
          if ($deja_ami != 0)
          {
          echo '<p>Ce membre fait déjà parti de vos amis ou a déjà proposé son amitié :p<br />
          Cliquez <a href="./liste_d_ami.php?action=add">ici</a> pour réessayer</p>';
          $i++;
          }
          


          donc il faut reprendre un bout de code et de remettre dans voirprofil mais j'ai déjà éssayé mais ça n'a pas marché

          merci de votre aitre
          1. Déjà c'est $data['membre_id'] plutôt que $data1['membre_id'] : $data1[] n'existe pas on dirait

            Par contre pour $comp['ami_from'] : ça je sais pas d'où tu le sors il apparaît nulle part dans ton code
            1. merci donc si je met ce code

              <?php
              if ($data['ami_from'] != $data['membre_id'])
              {
              echo '<a href="liste_d_ami.php?action=add&amp;membre_pseudo='.urlencode($data['membre_pseudo']).'" title="Ajouter un ami">Ajouter un ami</a><br />';
              }
              else
              {
              echo '<strong>ce membre fait parti de vos amis</strong><br />';
              }
              ?>
              


              là il me met

              ce membre fait parti de vos amis

              pour le profil de mon amis là c'est bon

              mais si je regarde un autre profil qui n'est pas mon amis il me met toujours ce membre fait parti de vos amis au lieu dire ajouter un amis

              merci de ton aide
              1. je peux pas te dire : ton code est trop incomplet

                Donne le code de toute la page
                1. si on reprend la page liste d'ami qui est :

                  http://rafb.net/p/LiryxF17.html

                  et ceux qui m'interresse c'est juste 2 echos

                  1 echo pour ajouté un amis et l'autre ce membre fait parti de votre amis

                  don il faut mettre soit l'un où l'autre

                  merci

                  et tu me diras quoi remplacer dans ce code

                  <?php
                  if ($data['ami_from'] != $data['membre_id'])
                  {
                  echo '<a href="liste_d_ami.php?action=add&amp;membre_pseudo='.urlencode($data['membre_pseudo']).'" title="Ajouter un ami">Ajouter un ami</a><br />';
                  }
                  else
                  {
                  echo '<strong>ce membre fait parti de vos amis</strong><br />';
                  }
                  ?>
                  


                  par quoi

                  merci pour ton aide
                  1. un petit up pour savoir situ as trouvé la solution pour affiché soit l'un où l'autre mon echo

                    merci
                    1. bjr

                      Il m'a fallu un certain temps avant de réaliser que tu essayais de modifier le code de la page
                      voirprofil.php et pas liste_d_ami.php que tu as posté !!!

                      Faut être précis : Je suis pas devin ! Les autres intervenants non plus ...

                      Le code de la page liste_d_ami.php semble bien écrit c'est déjà ça ;-)

                      Poste le code de la page voirprofil.php et surtout fait ressortir l'emplacement où tu veux insérer ton morceau de code !
                      1. merci c'est pour ca que je viens posté c'est pour vous que tu m'aide car si je reprend le morceau dans liste d'ami

                        et mettre dans voir profil ça ne marche plus

                        merci
                        1. Le question est : "pourquoi copier/coller du code un peu au hasard fonctionnerait ?"

                          T'as aucune chance que ça fonctionne si tu ne comprends pas de A à Z le code PHP contenu dans ta page
                          voirprofil.php

                          Poste le code de la page voirprofil.php

                          1. re voilà la page voir profil j'ai bien fait pour cacher où montrer leur mail donc c'est bon

                            donc je veut faire la même chose pour ajouter un amis où ce membre est votre ami

                            merci

                            et voilà le code

                            http://rafb.net/p/qFVk4P59.html

                            merci d'avance
                            1. Déjà ici

                              $demande_ami = mysql_query('SELECT * FROM forum_amis, forum_membres WHERE ami_to="'.$_SESSION['id'].'"')or die(mysql_error());

                              Il manque la clause ON dans la jointure

                              Ensuite au départ tu utilises directement des variables comme $action ou $membre sans même les initialiser depuis $_GET[] ou $_POST[]

                              Dans ta page liste_ami.php tu passes l'identifiant dans un paramètre nommé "m" donc PHP va récupérer $m certainement pas $membre
                              1. donc il faut reprendre ce code

                                $deja_ami = mysql_result(mysql_query("SELECT COUNT(*) AS nbr FROM forum_amis 
                                WHERE ami_from = '".intval($_SESSION['id'])."' AND ami_to = '".$data['membre_id']."'
                                OR ami_from = '".intval($_SESSION['id'])."' AND ami_to = '".$data['membre_id']."'"),0);
                                if ($deja_ami != 0)
                                {
                                echo '<p>Ce membre fait déjà parti de vos amis ou a déjà proposé son amitié :p<br />
                                Cliquez <a href="./liste_d_ami.php?action=add">ici</a> pour réessayer</p>';
                                $i++;
                                }
                                


                                et pour ami from et ami to ce n'est pas moi c'etait dans le tuto site de zero donc

                                si tu peux m'aidé à faie mes 2 echo je t'en remerci d'avance
                                1. Essai avec cette requête :

                                  $demande_ami = mysql_query('SELECT * FROM forum_amis WHERE ami_from="'.$_SESSION['id'].'" and ami_to="'.$data1['membre_id'].'"')or die(mysql_error());

                                  1. re donc on vas reprendre au debut

                                    donc a partir de ce code avec tes modifs

                                    //On compte le nombre de demande en cours et on met quelques liens
                                    $demande_ami = mysql_query('SELECT * FROM forum_amis WHERE ami_from="'.$_SESSION['id'].'" and ami_to="'.$data1['membre_id'].'"')or die(mysql_error());
                                    $comp = mysql_fetch_array($demande_ami);
                                    
                                    if($comp['ami_from'] != $data1['membre_id'])
                                    {
                                    echo '<a href="liste_d_ami.php?action=add&amp;membre_pseudo='.urlencode($data1['membre_pseudo']).'" title="Ajouter un ami">Ajouter un ami</a><br />';
                                    }
                                    else
                                    {
                                    echo '<strong>ce membre fait parti de vos amis</strong><br />';
                                    }
                                    


                                    mais il ne veu pas affiché l'écho il affiche toujours ajouter un ami

                                    merci
                                    1. excuse de faire un up mais je veut savoir comment on fait

                                      merci