Fonction ne pas affiché les Zéro

Petit nouveau ! | 8 Messages

23 août 2013, 23:47

Bonjour à tous je me présente vite fait, donc moi c'est cyril et j'suis en dessous d'un débutant en php pourtant je me donne du mal mais ça rentre pas
je viens vous demander de l'aide au sujet d'une fonction que je souhaite créer
en gros j'utilise une base wordpress et un plugins d'import de données en Xml
et j'aimerais bien que lorsque certaines données sont à Zéro ne rien afficher ou alors simple un NC pour (non communiqué) si possible
j'ai vu deux trois truc sur empty()
mais j'arrive à rien
auriez svp une piste à me donner, merci d'avance

Cordialement Cyril

ViPHP
xTG
ViPHP | 7331 Messages

24 août 2013, 07:09

Voilà le principe. :)
$variable = 0;
if( empty($variable) )
  echo "NC";
else
  echo $variable;

Invité
Invité n'ayant pas de compte PHPfrance

24 août 2013, 13:57

Super merci beaucoup xTG pour ton aide ça fonctionne...

voici le code..
function WPA_Fix_Zero(){
$variable = 0;
if( empty($variable) )
  echo "NC";
else
  echo $variable;
 } 

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

24 août 2013, 14:24

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

24 août 2013, 15:12

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.

Ok merci c'est fait...

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

24 août 2013, 15:25

Merci
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

14 nov. 2013, 20:34

Re bonjour à tous...

je me permets de ré-ouvrir le sujet

en faite je souhaite à présent pouvoir afficher le contenu d'une autre variable si celle si n'a pas de valeur exemple si aucun prix afficher la valeur de loyer

je comprend le principe c'est un peut comme excel avec des Si, mais j'ai beau essayer des milliards de combinaisons, mais j'ai aucun résultat probant


voici le code merci pour votre aide

Code : Tout sélectionner

function WPA_Fix_Location($price,$loyer){ $price = '' ; if (empty($price)) echo $price ; else echo $loyer; }

Eléphant du PHP | 116 Messages

14 nov. 2013, 22:33

Salut,

Dans ton exemple, tu dis "Si y'a pas de prix, afficher le prix, sinon afficher le loyer". Tu es sûr de pas préférer l'inverse ? Du genre : "Si y'a un prix, tant mieux affiche le, sinon affiche le loyer " ?
if(!empty($price){
echo $price;
}
else {
echo $loyer;
}
@+,
Computarelier

Mammouth du PHP | 2278 Messages

14 nov. 2013, 22:34

Déjà pour que la fonction serve à quelque chose dans tous les cas:
function WPA_Fix_Zero($variable)
{
    if (empty($variable))
    {
        return "NC" ;
    }
   else
   {
     return $variable;
   }
}

$prix = WPA_Fix_Zero(0);
$tva = WPA_Fix_Zero(17.60);
/*etc*/
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 77 Messages

14 nov. 2013, 22:49

Pour tester des nombres(integer, float...), perso je déconseille empty qui pour moi s'applique plutôt à des objets de type tableau par exemple.

Pour tester un nombre entier par exemple, je le type toujours en entier avec (int)$price et je teste la valeur de la variable par rapport à 0:
if($price > 0){
...
}

Si votre variable est nulle ou vide, le fait de mettre (int) devant la transforme automatique en 0.
Développeur PHP/Javascript/HTML

Mes sites perso :
construire une piscine => http://www.construire-sa-piscine.com
Le cadre végétal => http://www.cadre-vegetal.org

Petit nouveau ! | 8 Messages

15 nov. 2013, 22:40

Merci à tous pour votre aide

bon pour les deux messages plus haut j'ai rien compris désolé j'suis une bille limite blonde donc excusez-moi

après j'ai essayé ceci mais sans succès

Code : Tout sélectionner

function Fix_Location($price,$loyer){ if(!empty($price)) echo $price; else echo $loyer; }

Eléphant du PHP | 77 Messages

16 nov. 2013, 14:27

Essaies ça :
function Fix_Location($price,$loyer){
     $lPrice = (int)$price;
     if($lPrice > 0){
           echo $lPrice;
     }else{
         echo $loyer;
     }
}
Développeur PHP/Javascript/HTML

Mes sites perso :
construire une piscine => http://www.construire-sa-piscine.com
Le cadre végétal => http://www.cadre-vegetal.org

Petit nouveau ! | 8 Messages

16 nov. 2013, 16:01

Merci franck pour ton aide mais non aucun changement

afin que je puisse comprendre pourquoi le $l devant $lPrice
pour que le script retourne 0 ???? si aucune valeurs c'est ça

merci

Eléphant du PHP | 77 Messages

16 nov. 2013, 18:14

Si tu fais ça:
<?php
function Fix_Location($price,$loyer){
	$price = (int)$price;
	if($price > 0){
		return $price ;
	}else{
		return $loyer;
	}
}

echo '-> Price: '.Fix_Location(10, 20).'<br />';
echo '-> Loyer: '.Fix_Location(0, 20).'<br />';
echo '-> Loyer: '.Fix_Location('', 20).'<br />';
echo '-> Loyer: '.Fix_Location(NULL, 20).'<br />';

?>

Le premier doit t'afficher 10 et les autres 20, c'est OBLIGE.

Le l ne signifie rien sauf que je définis une nouvelle variable locale (voilà pourquoi l), je l'ai enlevé si ça te perturbe...

Le truc est je 'force' cette variable à être un entier. Donc si elle est nulle, elle prend la valeur 0. Le test if, else est lui assez explicite...

Par contre, ne mets jamais un echo en sortie de function, utilises toujours un return parce que si tu fais un echo de ta fonction qui fait elle même un echo ça va pas le faire...
Développeur PHP/Javascript/HTML

Mes sites perso :
construire une piscine => http://www.construire-sa-piscine.com
Le cadre végétal => http://www.cadre-vegetal.org

Petit nouveau ! | 8 Messages

16 nov. 2013, 19:29

ok merci ça j'ai bien compris, donc j'ai testé et effectivement j'ai bien ça qui s'affiche

-> Price: 10
-> Loyer: 20
-> Loyer: 20
-> Loyer: 20

par contre ce que je ne comprend pas sur la fonction qui remplace le 0 par un Nc
fonctionne sur toutes les variables sauf sur le prix....

à la rigueur si j'arrive à afficher "location" si aucun prix n'est affiché serait déjà bien mais même là ça ne marche pas...
à ne rien comprendre pfffff