affichage d'1 sous-menu avec problème T_ELSE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage d'1 sous-menu avec problème T_ELSE

par Hywan » 07 juil. 2008, 22:52

Hey :),

Zeus a raison, il te manque une accolage fermante. Indente comme il faut ton code, tu verras qu'il y a une erreur :). On ne va pas te le faire tout de même, n'est-ce pas :roll: ?

par wik » 07 juil. 2008, 20:56

Je viens de checker via Notepad....
Le truc bizarre est que l'accolade du 3e "while" renvoie sur "else" et le "if (isset...)" renvoie lui à la fin.
Mais selon moi le compte est bon malgré tout...

Et je ne vois pas comment modifier l'ordre de mes requêtes...

par zeus » 07 juil. 2008, 19:42

Ré-indente correctement ton code et tu verras que tu ouvres un while que tu ne fermes pas ...

affichage d'1 sous-menu avec problème T_ELSE

par wik » 07 juil. 2008, 19:36

Bonjour,

Je crée un menu, qui contient un sous-menu "Artistes". Lorsqu'un élément du sous-menu est cliqué je souhaite faire apparaître son propre sous menu.

Voici le code :
<?php
  echo '<table width="170" border="0" cellspacing="0" cellpadding="0" align="left" class="txt7noir">';
	 $artiste_id = $_GET['artiste_id'];	
	// 1er MENU
$requete = mysql_query ("SELECT * FROM menu ORDER BY menu_order");

while ($resultat = mysql_fetch_array($requete)) {
 echo '<tr> 
    <td width="5">&nbsp;</td>
    <td width="160" colspan="2">&nbsp;</td>
    <td width="5">&nbsp;</td>
  </tr>
  <tr> 
    <td width="5">&nbsp;</td>
    <td width="160" colspan="2" class="txt8noirGras">--------------------------<br>'.strtoupper($resultat[menu_titre]).'</td>
    <td width="5">&nbsp;</td>
  </tr>
    <tr> 
    <td width="5">&nbsp;</td>
    <td width="160" colspan="2">&nbsp;</td>
    <td width="5">&nbsp;</td>
  </tr>' ; 

 	// AFFICHAGE DES ARTISTES DU MENU
	$requete2 = mysql_query ("SELECT a.artiste_id, a.artiste_nom, a.artiste_web FROM artiste a LEFT JOIN menu m ON (a.menu_id = m.menu_id) WHERE a.menu_id = '".$resultat[menu_id]."' ORDER BY a.artiste_order") or die('Erreur : ' . mysql_error());
	
	while ($resultat2 = mysql_fetch_array($requete2)) {
 $artist=preg_replace('/\s/', '_', $resultat2[artiste_nom]);
 
 if ($resultat[menu_id] == '1') {
 $res = '<a href="projects.php?artist='.$artist.'">'.$resultat2[artiste_nom].'</a>';
 } else {
 $res = '<a href="related_artist.php?artist='.$artist.'">'.$resultat2[artiste_nom].'</a>';
	}
	
	// AFFICHAGE SOUS-MENU PAR ARTISTE (si selectionné)
        if (isset($_GET['artiste_id'])){
	$requete3 = mysql_query ("SELECT DISTINCT m2.menu2_titre FROM artiste_infos ai LEFT JOIN artiste a ON (a.artiste_id = ai.artiste_id) LEFT JOIN menu2 m2 ON (m2.menu2_id = ai.menu2_id) WHERE ai.artiste_id = '".$artiste_id."'AND ai.menu2_id = '1' ORDER BY m2.menu2_order") or die('Erreur : ' . mysql_error());
	
	while ($resultat3 = mysql_fetch_array($requete3)) {

echo '<tr> 
    <td width="5">&nbsp;</td>
    <td width="160" colspan="2" bgcolor="#C2B9A1" class="txt8noir">'.$res.'</td>
    <td width="5">&nbsp;</td>
  </tr>
  <tr> 
          <td width="5">&nbsp;</td>
          <td width="20">&nbsp;</td>
          <td width="140"><a href="#live">'.$resultat3[menu2_titre].'</a><br></td>
          <td width="5">&nbsp;</td>
        </tr>';
} else {
echo'<tr> 
    <td width="5">&nbsp;</td>
    <td width="160" colspan="2" class="txt8noir">'.$res.'</td>
    <td width="5">&nbsp;</td>
  </tr>';
		}
		}
		}
		}
Un message d'erreur s'affiche :
Parse error: syntax error, unexpected T_ELSE in /mnt/134/sdc/c/1/patchworksprods/include/menu.php on line 52
qui correspond à "} else {"

Quelqu'un peut-il m'expliquer ce qui ne colle pas ?
Merci d'avance.