Version complète: sur le forum Webmaster Hub : Problème avec IF et ELSEIF
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
LiL'SkiSo
Bonjour,
J'ai un petit problème, sûrement de syntaxe comme d'habitude mais je n'arrive pas à localiser l'erreur. J'ai voulu insérer deux conditions, if, et elseif. Voici mon code :
CODE
   
{
   $query45 = "SELECT FlightNb,Landed,Callsign FROM rapport WHERE Immat = '$immat' AND Valid = '2' ORDER BY Time";
   $result45 = mysql_query($query45)
   or die("Erreur. La page est peut être en construction.");
   while( $val45 = mysql_fetch_array($result45) ) {
   $pilote = $val45["Callsign"]
    ?>
   </b><?
   if($pilote!=$callsign) { ?></font><font color="#6BBFFE">
   <i>-<? echo $val45['FlightNb']; ?>&gt;</i><b> <? echo $val45['Landed']; ?> </font><font color="#0033cc" face="Verdana">
   <?
    }
   ?>
   <?
   elseif ($pilote=$callsign) { ?>
   <i>-<? echo $val45['FlightNb']; ?>&gt;</i><b> <? echo $val45['Landed']; ?> <?
    }
  }
}


Voilà, il me dit que j'ai une erreur à la ligne du elseif, voici l'erreur :
Parse error: parse error, unexpected T_ELSE in /var/www/free.fr/9/9/va.skyjet/modules/SJT001/index.php on line 422

Quelqu'un pourrait m'aider SVP ? Merci :
Théo B.
CODE

{
$query45 = "SELECT FlightNb,Landed,Callsign FROM rapport WHERE Immat = '$immat' AND Valid = '2' ORDER BY Time";
$result45 = mysql_query($query45) or die("Erreur. La page est peut être en construction.");
while( $val45 = mysql_fetch_array($result45) ) {
$pilote = $val45["Callsign"];
echo '</b>';
if($pilote!=$callsign) {
echo '</font><font color="#6BBFFE"><i>'.$val45['FlightNb'].'&gt;</i><b>'.$val45['Landed'].'</font><font color="#0033cc" face="Verdana">';
}
elseif ($pilote==$callsign)
{
echo '<i>-'.$val45['FlightNb'].'&gt;</i><b>'.$val45['Landed'];
}
}
}


Ne pas confondre == et =
LiL'SkiSo
Désolé, toujours la meme erreur
MS-DOS_1991
Tu as passé ton code en md5 ou quoi ? huh.gif
C'est illisible: pas indenté, pas de retour à la ligne, même les variables ont des noms compliqués q_smallexcla.gif ($result45, $var45, ...) sans parler des balises html dépréciées comme <font> :nono:
Un conseil: change tes habitudes de codage car tu ne t'y retrouveras jamais (la preuve c'est que tu postes wink.gif )

Pour ton problème, il te manque des ; un peu partout dans ton code et tu semble confondre = (opérateur d'affectation) avec == (opérateur de condition) wink.gif
LiL'SkiSo
Ooops, désolé, c réglé, j'avais mal uploader sur le serveur, merci beaucoup Théo
LiL'SkiSo
Salut MSDOS, c'est vrai que je suis pas un pro en codage, pour le val45 c'est que j'ai 45 boucles à faire sur la page donc...

Sinon, pourquoi le <font> n'est pas accepté ?
Sonia Gazil
45 boucles sur une page ? Et 45 requetes sql aussi ?
Ah mon avis, il doit y avoir moyen d'optimiser ton script.

ps : rien ne t'empeche d'appeller ta variable $result (sans chiffre après) à chaque fois, ça ne devrait pas poser de problème si tu exploites les resultats directement après la requete.
LiL'SkiSo
Ah ça je ne le savais pas Sonia, je vais l'essayer alors, merci wink.gif !
Je pensait qu'il fallait toujours faire une boucle avec mysql_fetch_array ou quelque chose comme ça...

@+++
captain_torche
Techniquement, si le traitement de tes 45 requêtes est identique, tu peux mettre ce traitement dans une boucle for (par exemple).
Dudu
Salut
CITATION(LiL'SkiSo @ mercredi 22 février 2006, 18h51)
Sinon, pourquoi le <font> n'est pas accepté ?
Parce qu'il est déprécié par le w3c et cette manière de coder présente pas mal d'inconvénients.
Mais là on quitte le sujet du PHP et on entre dans l'HTML et le CSS.

Afin d'éviter le hors-sujet, je te propose:
- de lire ces 2 articles les standards du web et les feuilles de style
- de poser tes éventuelles questions dans le forum(X) HTML&CSS
Anonymus
Tu peux nous poster les valeurs de ... 40 à 45 (par exemple), histoire de voir comment on peut ne faire qu'une seule boucle de tes 45 requètes ?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.