Problème PHP if..else
Résolu
nab13
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
nab13 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
nab13 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai un petit problème avec un script.
Voila je récupère des données que j'ai stocké dans un tableau et que j'affiche ensuite à la demande. Cela marche très bien mais je voudrais que s'affiche une ligne vierge quand la valeur "0,0 €" apparait.
Enfin je sais pas si je suis très clair mais voici le script en question :
<?
$zero="0,0 €";
if ($tab2[$i]==$zero){echo " ";}
else { echo $tab2[$i];}
?>
j'ai essayé ça aussi :
<?
$zero="0,0 €";
if ($tab2[$i]==$zero){echo "rien";}
else { echo $tab2[$i];}
?>
Le problème vient du fait que même si $tab2[$i]==$zero, cela m'affiche $tab2[$i].
De plus j'ai bien vérifié que dans mon tableau, cela soit la 0.0 € qui apparait et pas 0.0 ou 0 € ou 0.0€.....
J'espère avoir été suffisamment clair.
Merci d'avance pour vos réponses et votre aide.
J'ai un petit problème avec un script.
Voila je récupère des données que j'ai stocké dans un tableau et que j'affiche ensuite à la demande. Cela marche très bien mais je voudrais que s'affiche une ligne vierge quand la valeur "0,0 €" apparait.
Enfin je sais pas si je suis très clair mais voici le script en question :
<?
$zero="0,0 €";
if ($tab2[$i]==$zero){echo " ";}
else { echo $tab2[$i];}
?>
j'ai essayé ça aussi :
<?
$zero="0,0 €";
if ($tab2[$i]==$zero){echo "rien";}
else { echo $tab2[$i];}
?>
Le problème vient du fait que même si $tab2[$i]==$zero, cela m'affiche $tab2[$i].
De plus j'ai bien vérifié que dans mon tableau, cela soit la 0.0 € qui apparait et pas 0.0 ou 0 € ou 0.0€.....
J'espère avoir été suffisamment clair.
Merci d'avance pour vos réponses et votre aide.
A voir également:
- Problème PHP if..else
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Alert php ✓ - Forum PHP
- Php alert - Forum PHP
- Php if multiple conditions ✓ - Forum PHP
13 réponses
Le mieux serait de faire
$zero="0,0 €";
if ($tab2[$i]==$zero)
then
{
echo " ";
}
else
{
echo "$tab2[$i]";
}
$zero="0,0 €";
if ($tab2[$i]==$zero)
then
{
echo " ";
}
else
{
echo "$tab2[$i]";
}
Wouhou quelle rapidité !!!!
Merci de ta réponse mais je viens de tester et ça marche pas.
En fait cela me met une erreur au niveau du "then" qui n'a pas l'air d'être du PHP.
Merci de ta réponse mais je viens de tester et ça marche pas.
En fait cela me met une erreur au niveau du "then" qui n'a pas l'air d'être du PHP.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si les valeurs de ton tableau sont des réels, ce qui est probable, essaie:
<?
$zero=0.0;
if ($tab2[$i]=$zero)
{
echo "";
}else{
echo $tab2[$i]."€<br>";
}
?>
- Pas de "=="
- "<br>" = retour à la ligne
<?
$zero=0.0;
if ($tab2[$i]=$zero)
{
echo "";
}else{
echo $tab2[$i]."€<br>";
}
?>
- Pas de "=="
- "<br>" = retour à la ligne
En fait je vais reprendre un peu mon problème car j'ai eu du mal à m'expliquer...
Le script m'affiche bien les valeurs du tableau même si la condition if ($tab2[$i]==$zero) et c'est ça le problème. Sur ma page j'ai plein de 0.0 € alors que je voudrais des vides.
Au début mon code ressemblait à ça :
<?
if ($tab2[$i]=="0.0 €"){echo " ";}
else { echo $tab2[$i];}
?>
mais cela ne marchait pas non plus
Le script m'affiche bien les valeurs du tableau même si la condition if ($tab2[$i]==$zero) et c'est ça le problème. Sur ma page j'ai plein de 0.0 € alors que je voudrais des vides.
Au début mon code ressemblait à ça :
<?
if ($tab2[$i]=="0.0 €"){echo " ";}
else { echo $tab2[$i];}
?>
mais cela ne marchait pas non plus
<?
$zero="0,0 €";
if ($tab2[$i]==$zero){echo "qq chose ";}
else { echo $tab2[$i];}
?>
ne marche pas non plus
c est toujours $tab2[$i] qui s affiche
$zero="0,0 €";
if ($tab2[$i]==$zero){echo "qq chose ";}
else { echo $tab2[$i];}
?>
ne marche pas non plus
c est toujours $tab2[$i] qui s affiche
Voici mon code complet au cas ou
<?
$cat=$_GET['cat'];
$tab = array();
$tab2 = array();
$fichier = file("".$cat.".txt");
$fichier2 = file("p".$cat.".txt");
$fichier3 = file("i".$cat.".txt");
$total = count($fichier);
for($i = 0; $i < $total; $i++)
{
$tab1[$i]=$fichier[$i];
$tab2[$i]=$fichier2[$i];
$tab3[$i]=$fichier3[$i];
}
?>
<table border="1" cellpadding="5px">
<?
for($i = 0; $i < $total; $i++)
{
?>
<tr>
<td>
<?
echo $tab3[$i];
?>
</td>
<td>
<?
echo $tab1[$i];
?>
</td>
<td>
<?
$zero="0,0 €";
$prix=$tab2[$i];
if ($prix==$zero)
{echo "rien";}
else
{echo $prix;}
?>
</td>
</tr>
<?
}
?>
</table>
<?
$cat=$_GET['cat'];
$tab = array();
$tab2 = array();
$fichier = file("".$cat.".txt");
$fichier2 = file("p".$cat.".txt");
$fichier3 = file("i".$cat.".txt");
$total = count($fichier);
for($i = 0; $i < $total; $i++)
{
$tab1[$i]=$fichier[$i];
$tab2[$i]=$fichier2[$i];
$tab3[$i]=$fichier3[$i];
}
?>
<table border="1" cellpadding="5px">
<?
for($i = 0; $i < $total; $i++)
{
?>
<tr>
<td>
<?
echo $tab3[$i];
?>
</td>
<td>
<?
echo $tab1[$i];
?>
</td>
<td>
<?
$zero="0,0 €";
$prix=$tab2[$i];
if ($prix==$zero)
{echo "rien";}
else
{echo $prix;}
?>
</td>
</tr>
<?
}
?>
</table>
Non en fait le problème est que ton $tab2[$i], tu ne le met pas entre guillemets !!! met "$tab2[$i]"
Même problème.
J' ai essayé de simplifié le script :
<?
if ($tab2[$i]="0,0 €")
{echo "rien";}
else {echo $tab2[$i];}
?>
Mais là il m'écrit tout le long "rien"
Moi je dis chelou tout ça
J' ai essayé de simplifié le script :
<?
if ($tab2[$i]="0,0 €")
{echo "rien";}
else {echo $tab2[$i];}
?>
Mais là il m'écrit tout le long "rien"
Moi je dis chelou tout ça
Là, c'est normal qu'il t'écrive "rien" :
SI (je réussis à AFFECTER "0,0 €" à $tab2[$i]) {...}
Tu teste l'affectation (symbole =) et pas la comparaison (symbole ==)
Pour ton problème :
1. Si c'est possible, mets tes valeurs numériques au format "normal". Tu rajouteras dans ton php les fioritures (la virgule, le €)
2. tu peux essayer de tester si $tab2[$i] converti en nombre est égal à zéro (Au passage, teste si c'est <> de zéro, et tu n'as plus besoin de faire un ELSE) :
SI (je réussis à AFFECTER "0,0 €" à $tab2[$i]) {...}
Tu teste l'affectation (symbole =) et pas la comparaison (symbole ==)
Pour ton problème :
1. Si c'est possible, mets tes valeurs numériques au format "normal". Tu rajouteras dans ton php les fioritures (la virgule, le €)
2. tu peux essayer de tester si $tab2[$i] converti en nombre est égal à zéro (Au passage, teste si c'est <> de zéro, et tu n'as plus besoin de faire un ELSE) :
if (doubleval($tab2[$i]) <> 0) { echo $tab2[$i]; }
Est en mettant entre simple cote le $i ??
echo "$tab2['$i']"; ???
Sinon sa veut dire que tu récupère jamais "0,0€" dans "$tab2[$i]".
fait un écho de ce que tu as dedans juste avant ton if. regarde si tu as pas un point a la place de la virgule.
echo "$tab2['$i']"; ???
Sinon sa veut dire que tu récupère jamais "0,0€" dans "$tab2[$i]".
fait un écho de ce que tu as dedans juste avant ton if. regarde si tu as pas un point a la place de la virgule.
Bon voila j'ai changé de technique et le code donne ça :
<?php
$mon_texte = $tab2[$i];
$texte_clean = trim($mon_texte);
$euro= '€';
$new_texte_clean = ereg_replace('€', $euro, $texte_clean);
if ($new_texte_clean == "0,0") echo " ";
else echo $texte_clean." €";
?>
et ça marche
Merci beaucoup à tous pour vos conseils !
<?php
$mon_texte = $tab2[$i];
$texte_clean = trim($mon_texte);
$euro= '€';
$new_texte_clean = ereg_replace('€', $euro, $texte_clean);
if ($new_texte_clean == "0,0") echo " ";
else echo $texte_clean." €";
?>
et ça marche
Merci beaucoup à tous pour vos conseils !