2013-03-13 117 views
0

我想知道如何重复的功能,直到返回某个值的函数。我觉得像这样的工作,但事实并非如此。PHP重复基于返回值

list($db_Total) = getData($db_queryResult); // a random number from a mysqli query result. 

function getData($db_Total){ 
if($db_Total){ 
    while($arr = mysqli_fetch_array){ 
     $db_Total = $arr['prize']; // set db_Total to database query amount 
    } 
} 
} 
if($db_Total>=300){ 
echo "is equal or higher than 300"; 

    while($db_Total >= 300){ // loop until you get a smaller result 
    list($db_Total) = getData($db_queryResult); 
    } 
}elseif($db_Total <= 300){ 
    echo "is lower than 300"; 
} 

我猜说,这是,我想只运行一个函数一次,如果该函数返回一个值高于我不想,我想再次运行该功能,直到它的simpliest方式确实......有可能吗?

感谢您的任何帮助。

回答

0
while (($db_Total = getData($db_queryResult)) >= 300) { 
    echo "is equal or higher than 300"; 
} 
echo "is lower than 300"; 
0

这里仅仅是少数在代码中的错误的:

  • $arr = mysqli_fetch_array应该$arr = mysqli_fetch_array($db_queryResult)
  • 但是很多时候你叫mysqli_fetch_array也不会改变结果,因为你已经已经运行的实际SQL一旦
  • 还是你的意思,只是看一个多行的一行导致每个getData函数被调用的时间 - 在这种情况下,你不希望while循环就是这样的功能里面,这将消耗从数据库结果
  • getData功能不会返回任何东西(没有return语句)的所有行
  • getData功能似乎被赋予DB结果集,但其称为$db_Total和除了检查它不是false-y(if($db_Total)
  • list($foo) = bar()用于当bar()返回几个单独项目的数组时;不知道为什么你认为你需要在这里
  • elseif($db_Total <= 300){应该仅仅是else
  • 无限循环的提防 - 是你绝对保证最终获得低于300多少?