我试图过滤各种自行车女士们,男人,孩子们。我写了一个函数,将我们的一串数字排序为选定的自行车类型。
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吗?