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. essaye plutot:
    <?php $new_ami_non_valid == 0 ? echo '' : echo '<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. 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. 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. 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. 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. 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. 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 ! :)