Image par défaut

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

13 avr. 2006, 17:47

le probleme est que [...] je m'y perds
Raison de plus pour clarifier le code!
est-ce au moins un point virgule seul qui manque ? et dans quelle phrase exactement ? Je suis perdu !
Je sais pas, rajoute quelques points virgule au hasard ? Ou alors réécris la page ? Je te recommande la seconde solution. Si ton code ressemble à un plat de spaghetti c'est définitivement la meilleure solution.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 avr. 2006, 17:49

Respire, et relaxe toi.


Maintenant, regarde ces deux lignes :
echo 'des tas de trucs...
<TD vAlign=middle bgColor=#000000 align="center">
echo '<img src=" '.$dossier_img; 

Maintenant regarde le modèle :
echo 'machaine machaine';
echo 'ma chaine autre';

Tu vois?

Où commence le echo ?
Où commence la chaîne de caractère ?
Où se termine la chaîne de caractère ?
Où se termine le 1er echo ?
Tu relis le message de mere-teresa, tu regarde attentivement la ligne qu'elle a citée, caractère par caractère, tu regardes si rien ne te choque, et tu réponds à ses questions

Et ensuite, tu reprends ton code comme l'a suggéré Hubert Roksor :P
Modifié en dernier par ouckileou le 13 avr. 2006, 17:51, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 avr. 2006, 17:50

Et avec un indice coloré, y verrais tu plus clair ? Tu peux aussi t'aider du message d'erreur retourné par php pour situer la ligne qui pose problème (même si en général il faut remonter d'une ligne ou deux)

Je reprend ton code de la premiere page :
<?php
...

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
{ 
    // on affiche les informations de l'enregistrement en cours 
    
        echo' <table border="0" cellpadding="0" cellspacing="0" width="100%"> 
          <tr> 
          <TD width="21"><IMG height=50 alt="" 
            src="../logos/tlc.gif" 
            width=20 border=0 name=tlc></TD> 
          <TD width="678" 
          background="../logos/tm.gif" colspan="2"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
            width=1 border=0 name=tm></TD> 
          <TD width="21"><IMG height=50 alt="" 
            src="../logos/trc.gif" 
            width=20 border=0 name=trc></TD> 
          </tr> 
          <tr> 
          <TD 
          background="../logos/left.gif" rowspan="3" width="21"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
            width=1 border=0 name=left></TD> 
          <TD vAlign=middle bgColor=#000000 align="center" width="100%"> 
            <font color="#FF7E00"><b>'.$data['nom'].'</b></font> 
            <hr> 
</TD> 
          <TD vAlign=middle bgColor=#000000 align="center"> 
            echo '<img src="'.$dossier_img; 
echo ( file_exists($dossier_img.'logo_cours_'.$data['ID']) ) ? 'logo_cours_'.$data['ID'] : 'no_logo.gif' ; 
echo '" width="111" height="46" border="0"/>'; 
</TD> 
          <TD 
          background="../logos/right.gif" rowspan="3" width="21"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
Comme tu peux le voir, les mots clés php comme ton while et ton premier echo sont normalement en vert et les chaines de caractères placées entre apostrophes 'sont en rouge'... vois tu mieux à partir de quel moment ça commence à clocher et à quel endroit il te manque apostrophe et point virgule ?

Eléphant du PHP | 257 Messages

13 avr. 2006, 17:50

le probleme est que [...] je m'y perds
Raison de plus pour clarifier le code!
est-ce au moins un point virgule seul qui manque ? et dans quelle phrase exactement ? Je suis perdu !
Je sais pas, rajoute quelques points virgule au hasard ? Ou alors réécris la page ? Je te recommande la seconde solution. Si ton code ressemble à un plat de spaghetti c'est définitivement la meilleure solution.
Merci Roksor !!!!

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

13 avr. 2006, 17:57

Alors alors ?
Tu nous diras quand ça marchera ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 257 Messages

13 avr. 2006, 17:57

Et avec un indice coloré, y verrais tu plus clair ? Tu peux aussi t'aider du message d'erreur retourné par php pour situer la ligne qui pose problème (même si en général il faut remonter d'une ligne ou deux)

Je reprend ton code de la premiere page :
<?php
...

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
{ 
    // on affiche les informations de l'enregistrement en cours 
    
        echo' <table border="0" cellpadding="0" cellspacing="0" width="100%"> 
          <tr> 
          <TD width="21"><IMG height=50 alt="" 
            src="../logos/tlc.gif" 
            width=20 border=0 name=tlc></TD> 
          <TD width="678" 
          background="../logos/tm.gif" colspan="2"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
            width=1 border=0 name=tm></TD> 
          <TD width="21"><IMG height=50 alt="" 
            src="../logos/trc.gif" 
            width=20 border=0 name=trc></TD> 
          </tr> 
          <tr> 
          <TD 
          background="../logos/left.gif" rowspan="3" width="21"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
            width=1 border=0 name=left></TD> 
          <TD vAlign=middle bgColor=#000000 align="center" width="100%"> 
            <font color="#FF7E00"><b>'.$data['nom'].'</b></font> 
            <hr> 
</TD> 
          <TD vAlign=middle bgColor=#000000 align="center"> 
            echo '<img src="'.$dossier_img; 
echo ( file_exists($dossier_img.'logo_cours_'.$data['ID']) ) ? 'logo_cours_'.$data['ID'] : 'no_logo.gif' ; 
echo '" width="111" height="46" border="0"/>'; 
</TD> 
          <TD 
          background="../logos/right.gif" rowspan="3" width="21"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
Comme tu peux le voir, les mots clés php comme ton while et ton premier echo sont normalement en vert et les chaines de caractères placées entre apostrophes 'sont en rouge'... vois tu mieux à partir de quel moment ça commence à clocher et à quel endroit il te manque apostrophe et point virgule ?
effectivement les autres echo sont en rouge mais malheureusement cela ne me dit pas ou il manque un apo et un p virgule ..
Ne manquerait-il pas également un { ou qui ferme } ???
Non ?

Eléphant du PHP | 257 Messages

13 avr. 2006, 18:01

echo s'ouvre ici :
echo '<img src="'.$dossier_img;
echo ( file_exists($dossier_img.'logo_cours_'.$data['ID']) ) ? 'logo_cours_'.$data['ID'] : 'no_logo.gif' ;
echo '" width="111" height="46" border="0"/>';

je penserai qu'il manque un ' pour fermer le echo ici :
echo '<img src="'.$dossier_img ' ;

pffff j'en sais plus rien
:oops: :cry:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

13 avr. 2006, 18:07

Le echo dont tu parles (çui qui s'ouvre ici) est en rouge !
C'est donc avant lui qu'il faut terminer l'echo précédent...
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 avr. 2006, 18:08

Loupé :p
Cette apostrophe là est déjà équilibrée, donc pas besoin de la remettre :

echo '<img src="'.$dossier_img ;

Par contre puisque ce echo là est en rouge et non en vert, c'est qu'il y a une apostrophe située avant (par exemple au début du echo précédent qui lui est bien en vert) qui n'a pas été refermée.... :)

Aller courage, compte tes apostrophes et relis bien les messages de mere teresa, il (euh.. elle ? :)) t'a indiqué l'endroit exact ou il y a un soucis ! :)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

13 avr. 2006, 18:21

Aller courage, compte tes apostrophes et relis bien les messages de mere teresa, il (euh.. elle ?) t'a indiqué l'endroit exact ou il y a un soucis !
Elle !
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 257 Messages

13 avr. 2006, 18:21

Loupé :p
Cette apostrophe là est déjà équilibrée, donc pas besoin de la remettre :

echo '<img src="'.$dossier_img ;

Par contre puisque ce echo là est en rouge et non en vert, c'est qu'il y a une apostrophe située avant (par exemple au début du echo précédent qui lui est bien en vert) qui n'a pas été refermée.... :)

Aller courage, compte tes apostrophes et relis bien les messages de mere teresa, il (euh.. elle ? :)) t'a indiqué l'endroit exact ou il y a un soucis ! :)
oui ici (en rouge):
<TD vAlign=middle bgColor=#000000 align="center"> ';
echo '<img src=" '.$dossier_img;
echo ( file_exists($dossier_img.'logo_cours_'.$data['ID']) ) ? 'logo_cours_'.$data['ID'] : 'no_logo.gif' ;
echo ' "width="111" height="46" border="0"/>';
</TD>

mais ça ne donne rien lol

Eléphant du PHP | 257 Messages

13 avr. 2006, 18:27

Ben non. Pas de point virgule après <TD vAlign=middle bgColor=#000000 align="center"> .
En PHP, on fait :

echo 'chaine';
echo 'chaine';
voila le message de mamie theresa lol
donc si j'ai bien compris il manque le p virgule après ceci :
<TD vAlign=middle bgColor=#000000 align="center"> ;

.... mais ça ne donne rien no pu :oops: :cry:

Eléphant du PHP | 257 Messages

13 avr. 2006, 19:29

bon vous n'allez pas me laisser comme ça !!! :cry: :cry: :cry:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 avr. 2006, 20:55

bon vous n'allez pas me laisser comme ça !!! :cry: :cry: :cry:
La journée est finie... alors on se détend stp

Et franchement, ouvre un peu les yeux et réfléchis la solution est devant toi

Parceque on te parle de chaîne non terminée, de virgule et de guillemet, et tout ce que tu fais c'est essayer d'en mettre par-ci par là en disant "c'est ça ?" ou "c'est ici ?"

J'ai même pas envie d'en rajouter une couche, dans tous les messages tout le monde t'explique de quoi vient le problème et comment trouver la solution.

Alors tu reprends le bout de code qui pose problème, tu cherches et tu trouves.

A moins que l'erreur ait changé ? :roll:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 avr. 2006, 21:09

Si si, c'était bien avec ton " '; " , il y a toujours une erreur certes, mais si tu y regardes de plus près, elle ne doit pas être au même endroit...

Reprenons le jeu des couleurs :) :
<?php 
... 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
{ 
    // on affiche les informations de l'enregistrement en cours 
     
        echo' <table border="0" cellpadding="0" cellspacing="0" width="100%"> 
          <tr> 
          <TD width="21"><IMG height=50 alt="" 
            src="../logos/tlc.gif" 
            width=20 border=0 name=tlc></TD> 
          <TD width="678" 
          background="../logos/tm.gif" colspan="2"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
            width=1 border=0 name=tm></TD> 
          <TD width="21"><IMG height=50 alt="" 
            src="../logos/trc.gif" 
            width=20 border=0 name=trc></TD> 
          </tr> 
          <tr> 
          <TD 
          background="../logos/left.gif" rowspan="3" width="21"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
            width=1 border=0 name=left></TD> 
          <TD vAlign=middle bgColor=#000000 align="center" width="100%"> 
            <font color="#FF7E00"><b>'.$data['nom'].'</b></font> 
            <hr> 
</TD> 
          <TD vAlign=middle bgColor=#000000 align="center"> '; // on ferme bien le premier echo

            // du coup le suivant reprend une couleur normale :)
            echo '<img src="'.$dossier_img; 
echo ( file_exists($dossier_img.'logo_cours_'.$data['ID']) ) ? 'logo_cours_'.$data['ID'] : 'no_logo.gif' ; 
echo '" width="111" height="46" border="0"/>'; 
</TD> 
          <TD 
          background="../logos/right.gif" rowspan="3" width="21"><IMG 
            height=1 alt="" 
            src="../logos/spacer.gif" 
maintenant voyons côté couleur... logiquement le bleu étant réservé aux mots clés, n'y a-t-il pas certaines instructions php qui ressemblent étrangement à des attributs html ? ;)