2012-07-04 78 views
0

我试图过滤各种自行车 女士们,男士,儿童。 我写了一个函数,它将我们的一串数字分类到选定的自行车上。如果其他语句不按预期工作

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 . ","; 

我做错了什么?

+0

预期产量是多少? –

+1

当你改变代码时会发生什么? (你已经把我们挂在那里......) –

+0

添加一些调试代码,这样你就可以看到你的代码正在处理什么输入,并确保'if'语句的正确部分被触发。 – andrewsi

回答

1

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

+0

输入应该看起来像:自行车(“9,6,32”,“kid”) 然后输出将是:J 9,M6, 输入2应该看起来像:bicycle(“9,6,32” ,“kids”) 然后输出将是:9,6, 但现在没有输出的时候,当我键入“孩子” 也当我切换“孩子”与“孩子”,所以这两个如果和elseif声明上面的一个正常工作。现在没有什么产出,因为它应该给9,6, –

1

我也注意到了这一点:

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

在你的函数的输入是$ stringnumbers但你不要在你的代码的任何地方使用它。 相反,你使用$ bicylenumbers,shoudn't是$ stringnumbers?