PHP : Parse error: syntax error, unexpected T_ECHO

Résolu
Bonjour,

Voici mon code :
<?php $link = mysql_connect('serveur', 'login', 'motdepasse');
mysql_select_db("bdd", $link);
$result = mysql_query("SELECT * FROM amis WHERE id_ami='". $_SESSION['id']."' AND valid='0'", $link);
$new_ami_non_valid = mysql_num_rows($result); ?>
<?php echo $new_ami_non_valid == 0 ? '' : '<span class="badge badge-important">'. echo $new_ami_non_valid; .'</span>'; ?>


Problème, quand je regarde sur ma page, voici ce qu'il s'affiche :

Parse error: syntax error, unexpected T_ECHO in /.../structure/menu.php on line 48

Comment régler ce problème ?

Merci d'avance.

8 réponses

  1. C'est à rien n'y comprendre car après avoir ajouter ce que tu m'as dit, le script à correctement fonctionné. Merci de ton aide en tout cas ! :)
    1. Tu n'as pas de raison de te connecter deux fois à la base de données, il faut donc supprimer
      $link = mysql_connect('serveur', 'login', 'motdepasse');
      mysql_select_db("bdd", $link);

      la deuxième fois.
      Mais je ne pense pas que ce soit la cause du problème. Comme ta requête a l'air d'être correcte, ajoute un mysql_error pour diagnostiquer :
      $result = mysql_query("SELECT * FROM messagerie WHERE id_desti='". $_SESSION['id']."' AND lu='0'", $link) or die(mysql_error());
      1. Voici les lignes précédentes :

        <ul class="nav">
                    <li><a href="">Accueil &nbsp 
        			 <?php $link = mysql_connect('serveur', 'login', 'motdepasse');
        mysql_select_db("bdd", $link);
        $result = mysql_query("SELECT * FROM amis WHERE id_ami='". $_SESSION['id']."' AND valid='0'", $link);
        $new_ami_non_valid = mysql_num_rows($result); ?>
        <?php echo $new_ami_non_valid == 0 ? '' : '<span class="badge badge-important">'. $new_ami_non_valid .'</span>'; ?>
        
        
        			</a></li>
                    <li><a href="">Profil</a></li>
                    <li><a href="">Messagerie  &nbsp
        			<?php $link = mysql_connect('serveur', 'login', 'motdepasse');
        mysql_select_db("bdd", $link);
        (ligne 55) $result = mysql_query("SELECT * FROM messagerie WHERE id_desti='". $_SESSION['id']."' AND lu='0'", $link);
        $new_message_non_lu = mysql_num_rows($result); ?>
        <?php echo $new_message_non_lu == 0 ? '' : '<span class="badge badge-important">'. $new_message_non_lu .'</span>'; ?>
        
        </a></li> 

        1. Pour diagnostiquer l'erreur (mais pas la corriger) :
          $result = mysql_query("SELECT * FROM amis WHERE id_ami='". $_SESSION['id']."' AND valid='0'", $link) or die (mysql_error());


          [edit] Pardon, si c'est ligne 55, c'est plus loin que l'erreur précédente.Il faut montrer les quelques lignes qui précèdent
          1. Un message d'erreur apparaît :

            Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a3389209/public_html/e/structure/menu.php on line 55
            1. Bonjour

              Tu as un 'echo' et un point-virgule en trop :

              <?php echo $new_ami_non_valid == 0 ? '' : '<span class="badge badge-important">'. $new_ami_non_valid .'</span>'; ?>
              1. Le problème persiste et le message d'erreur reste le même
                1. Essaye
                  <?php echo $new_ami_non_valid == 0 ? '' : '<span class="badge badge-important">'.$new_ami_non_valid.'</span>'; ?>
              2. essaye plutot:
                <?php $new_ami_non_valid == 0 ? echo '' : echo '<span class="badge badge-important">'.$new_ami_non_valid.'</span>'; ?>