如果 else 语句未按预期工作


if else statement is not working as intended

我试图过滤各种自行车女士们,男人,孩子们。我写了一个函数,将我们的一串数字排序为选定的自行车类型。

function: bicycle($stringnumbers, $sortbicycle)

脚本:

    function bicycle($stringnumbers, $sortbicycle){
    $bicycle = explode(',', $bicyclenumbers);
    foreach($bicycle as $bicycle1)
    {
       $sql2 = "SELECT * FROM `bicycle` WHERE `bicyclenumber` LIKE '".$bicycle1."' LIMIT 0, 30 ";
       $number = mysql_query($sql2)or die(mysql_error());
       while ($bicycleinfo = mysql_fetch_array($number)) 
       {
          $number1 = $bicycleinfo['sortbicycle'];
          if($sortbicycle == "kid") 
          {
             if($number1 == "boy")
             {
                $totaal .= "J " . $bicycle1 . ",";
             }
             elseif($number1 == "girl")
             {
                $totaal .= "M " . $bicycle1 . ",";
             }      
          }
          elseif($sortbicycle == "kids") 
          {
             if ($number1 == "boy")
             {
                $totaal .= $bicycle1 . ",";
             }
             elseif($number1 == "girl")
             {
                $totaal .= $bicycle1 . ",";
             }      
          }
          elseif($number1 == $sortbicycle)
          {
             $totaal .= $bicycle1 . ",";
          }
       }
    }
    if($totaal > "1")
    {
       $amount1 = $total;
    }
    else
    {
       $amount1 = ""; 
    }
 return $amount1;   
 }

但出于某种原因,这部分:

    if ($number1 == "boy")
    {
       $totaal .= "J " . $bicycle1 . ",";
    }
    elseif ($number1 == "girl")
    {
       $totaal .= "M " . $bicycle1 . ",";
    }               
 }
 elseif ($sortbicycle == "kids") 
 {
    if ($number1 == "boy")
    {
       $totaal .= $bicycle1 . ",";
    }
    elseif ($number1 == "girl")
    {
       $totaal .= $bicycle1 . ",";
    }           
 }

没有正常工作,第一部分"孩子"部分工作,但是当我删除

$totaal .= "J " . $bicycle1 . ",";

$totaal .= $bicycle1 . ",";

我做错了什么?

一个观察结果是你同时引用$totaal$total,并且你返回的$amount1不受$totaal的影响。除非$totaal是全局变量,否则不会使用它。

我也注意到了这一点:

function bicycle($stringnumbers, $sortbicycle){
$bicycle = explode(',', $bicyclenumbers);

在函数中,输入是$stringnumbers的,但您不会在代码中的任何位置使用它。相反,你用的是$bicylenumbers,这不是$stringnumbers吗?