2010-10-28 6 views
0
$counter = ""; 
if($sWall>1){ 
    $counter = $counter + $sWall; 
} 
if($sWC>1){ 
    $counter = $counter + $sWC; 
} 
if($sOther>1){ 
    $counter = $counter + $sOther; 
} 
if(!(empty($counter))){ 
    echo "(".$counter.") "; 
} 

C'est ce que j'ai qui ne fonctionne pas. $sOther, $sWC, $sWall est mysql_num_rows. Je souhaite faire écho par exemple (3) si vous avez 1 dans $sOther, 1 dans $sWC et 1 dans $sWall.Réglage de variable et de comptage

Comment puis-je faire cela, ce que j'ai fait est juste quelque chose que j'ai essayé.

+0

Comment ça « fonctionne pas »? Erreur? (Si oui, s'il vous plaît le modifier dans la question) Sortie inattendue? (Si oui, dites-nous ce que c'est.) – GreenMatt

Répondre

1
$counter = $sWall + $sWC + $sOther; 
if ($counter) { 
    echo '(' . $counter . ')'; 
} 

C'est tout;) Rappelez-vous: le code court est un bon code.

3

Le compteur est un type de chaîne. La première ligne doit être $counter = 0;. Et vous devriez changer if ($sWall>1)-if ($sWall>0) et ainsi de suite ...

0

Dans le code ci-dessus, compteur $ ne sera pas incrémenter si l'une des valeurs cochées sont égales à 1. Vous devez utiliser si (SWALL de $ * > = * 1). Il est peut-être encore plus facile d'ajouter simplement $sWall + $sWC + $sOther

0
$counter = 0; 
if($sWall>0){ 
    $counter = $counter + $sWall; 
} 
if($sWC>0){ 
    $counter = $counter + $sWC; 
} 
if($sOther>0){ 
    $counter = $counter + $sOther; 
} 
if($counter>0){ 
    echo "(".$counter.") "; 
} 

Utilisez un int si vous voulez stocker des numéros, de sorte que vous pouvez simplement vérifier si elle est supérieure à zéro et l'écho.

Notez que vous pouvez également écrire $counter += $sWall; au lieu de $counter = $counter + $sWall;, vous n'avez donc pas à taper autant.

0

Initialise les valeurs numériques à 0. Ce n'est pas la source de votre problème, car PHP va convertir la chaîne vide à 0 pour vous lorsque vous utilisez des opérateurs numériques comme +, mais symatiquement, il est préférable de déclarer à l'avance que $counter est numérique. Après avoir ajouté vos valeurs, vérifiez si $counter est supérieur à 0 plutôt que empty. Vous pouvez utiliser les opérateurs += et simplement tester $counter pour rendre la méthode un peu plus succincte. Enfin, vous avez choisi un opérateur de comparaison incorrect (>) pour tester vos valeurs. Si vous souhaitez inclure 1, utilisez >=:

$counter = 0; 
if($sWall >= 1) $counter += $sWall; 
if($sWC >= 1) $counter += $sWC; 
if($sOther >= 1) $counter += $sOther; 

if ($counter) 
    echo "($counter)";