Problème PHP if..else
Résolu/Fermé
nab13
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
-
29 mai 2008 à 16:33
nab13 Messages postés 54 Date d'inscription dimanche 23 mars 2008 Statut Membre Dernière intervention 18 juillet 2016 - 30 mai 2008 à 10:48
nab13 Messages postés 54 Date d'inscription dimanche 23 mars 2008 Statut Membre Dernière intervention 18 juillet 2016 - 30 mai 2008 à 10:48
A voir également:
- Problème PHP if..else
- Easy php - Télécharger - Divers Web & Internet
- Bouton php - Forum PHP
- Batch if else ✓ - Forum Autoit / batch
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
13 réponses
Remad
Messages postés
1662
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
27 juillet 2012
698
29 mai 2008 à 16:35
29 mai 2008 à 16:35
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]";
}
nab13
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
12
29 mai 2008 à 16:45
29 mai 2008 à 16:45
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
nab13
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
12
29 mai 2008 à 16:56
29 mai 2008 à 16:56
Ben si j'enlève le then je reviens sur mon code de départ qui pose problème
Puzzer
Messages postés
1
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
29 mai 2008
29 mai 2008 à 17:10
29 mai 2008 à 17:10
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
nab13
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
12
29 mai 2008 à 17:21
29 mai 2008 à 17:21
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
nab13
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
12
29 mai 2008 à 17:26
29 mai 2008 à 17:26
<?
$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
nab13
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
12
29 mai 2008 à 17:29
29 mai 2008 à 17:29
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>
Remad
Messages postés
1662
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
27 juillet 2012
698
29 mai 2008 à 18:01
29 mai 2008 à 18:01
Non en fait le problème est que ton $tab2[$i], tu ne le met pas entre guillemets !!! met "$tab2[$i]"
nab13
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
12
29 mai 2008 à 22:10
29 mai 2008 à 22:10
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
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
30 mai 2008 à 08:47
30 mai 2008 à 08:47
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]; }
Remad
Messages postés
1662
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
27 juillet 2012
698
30 mai 2008 à 08:31
30 mai 2008 à 08:31
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.
nab13
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
12
30 mai 2008 à 10:48
30 mai 2008 à 10:48
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 !