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. 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...
  2. $a5 = 0 tu donnes la valeur 0
    $a5 == 0 tu donnes la condition
    1. Merci, j'avais oublié le 2ème =...
  3. 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
  4. 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?
  5. <?

    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. 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. 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.