Problème else PHP

Bonjour,

Voici mon problème.

Si un chiffre est égal à 0, je dois afficher une cellule vide dans mon tableau, si au contraire, ce chiffre n'est pas égal à 0, je dois en afficher un autre qui celui ci si est négatif, doit etre en rouge sinon en noir.

Et comme un bout de code vaut mieux qu'un long discours.:

if ($a5 = 0)?>
	<TD></TD> <?php else{
	if ($d2 <= 0){?>
	<td style = "color:red;"><?php echo number_format(odbc_result($DOU_avril,1) - odbc_result($DOU_avril1,1), 0, ',', ' ');} else{?></td>
	<td>
	<?php
	echo number_format(odbc_result($DOU_avril,1) - odbc_result($DOU_avril1,1), 0, ',', ' ');}}?></td>
	<?php 


je pense donc avoir un problème au niveau de mon ELSE mais je ne suis pas sur.
Merci de votre aide
Configuration: Windows XP
Firefox 2.0.0.13

7 réponses

  1. Suite à une analyse de ton, (et d'un plantage du net)

    voici la soluce finale qui marche:
    <?php
    if ($a5 == 0)
    {echo("<TD></TD>");}
    elseif ($a4 <= 0)
    {
    echo("<td style = 'color:red;'>".number_format(((odbc_result($DOU_janvier,1) / odbc_result($DOU_janvier1,1)-1)*100) , 2, ',', ' ')."</td>");
    }
    else {
    echo("<td>".number_format(((odbc_result($DOU_janvier,1) / odbc_result($DOU_janvier1,1)-1)*100) , 2, ',', ' ')."</td>");
    }
    ?>

    Merci beaucoup de votre aide.
    1. regarde ta fct number_format

      je me suis trompe sur

      echo"<td style = 'color:red;'>". number_format(odbc_result($DOU_avril,1)." - ".odbc_result($DOU_avril1,1), 0, ',', ' ')."</td>";

      echo"<td style = 'color:red;'>". number_format(odbc_result($DOU_avril,1) - odbc_result($DOU_avril1,1), 0, ',', ' ')."</td>";
      1. <?

        if ($d5 == 0) { echo"<TD></TD>"; }

        elseif ($d2 <= 0)
        {
        echo"<td style = 'color:red;'>". number_format(odbc_result($DOU_avril,1)." - ".odbc_result($DOU_avril1,1), 0, ',', ' ')."</td>";
        }
        else {
        echo"<td>".number_format(odbc_result($DOU_avril,1)." - ".odbc_result($DOU_avril1,1), 0, ',', ' ')."</td>");
        }

        ?>

        je l'ai refais rapidement, regarde bien la structure
        1. pas tres complique.

          $phrase= 'ceci est un exemple <a href="http://le_lien"> c\'est ceci</a>';

          ou

          $phrase= "ceci est un exemple <a href=\"http://le_lien\"> c'est ceci</a>";
          1. En fait, ca ne marche pas encore...

            Maintenant j'ai ça:

            if ($d5 == 0) {
            echo("<TD></TD>");
            }
            else {
            if ($d2 <= 0)
            {
            echo("<td style = 'color:red;'><?php echo number_format(odbc_result($DOU_avril,1) - odbc_result($DOU_avril1,1), 0, ',', ' '); ?></td>");
            }
            else {
            echo("<td><?php echo number_format(odbc_result($DOU_avril,1) - odbc_result($DOU_avril1,1), 0, ',', ' '); ?></td>");
            }}?>
            <?php

            mais le soucis, c'est qu'il m'affiche tjs la cellule vide maintenant...
            Vous avez une idée?
        2. pourquoi passer ton temps a ferme et ouvrir <?php
          mets tout dans des echo
          1. Ben disons que la concaténation et moi ca fait 2 donc j'évite de tout mettre en echo. :d

            Mais c'est vrai qu'il faudrait que je le fasse.
          2. @filoulebaujuSuivant les conseils de NINI, j'ai tout mis en echo, et ca a marché du premier coup.!!!

            Merci beaucoup à vous deux.

            bonne journée
        3. $a5 = 0 tu donnes la valeur 0
          $a5 == 0 tu donnes la condition
          1. Merci, j'avais oublié le 2ème =...
        4. Tes balises <td> sont fermées au mauvais endroit ;) Il faut les ouvrir ET les fermer dans le if ou le else. Là, le </td> était après le else...
          Et puis je crois que les if sans {}, c'est bien pratique si tu as du php derrière, mais pour le html je crois que c'est source de problème. Sinon il suffit de le mettre dans un echo...

          if ($a5 = 0) {
          ?>
          	<TD></TD>
          <?php
          }
          else {
          	if ($d2 <= 0)
                  {
                  ?>
          	<td style = "color:red;"><?php echo number_format(odbc_result($DOU_avril,1) - odbc_result($DOU_avril1,1), 0, ',', ' '); ?></td>
                  <?php
                  }
                  else {
                  ?>
          	<td><?php echo number_format(odbc_result($DOU_avril,1) - odbc_result($DOU_avril1,1), 0, ',', ' '); ?></td>
                  <?php
                  }
          }
          
          1. Merci, je n'ai plus d'erreur, mais ça n'arrange pas le problème.
            Meme si la valeur de $a5 est bien égal à 0, il ne m'affiche pas la cellule du tableau vide, il passe direct au else et m'affiche le résultat de l'autre chiffre...

            Bizarre il prend la deuxième instruction mais pas la première...