问题描述
$qVraagGroepenOp = "SELECT * FROM $tabele WHERE $where";$rVraagGroepenOp = mysql_query ( $qVraagGroepenOp );$aVraagGroepenOp = mysql_fetch_assoc ( $rVraagGroepenOp )
$qVraagGroepenOp = "SELECT * FROM $tabele WHERE $where"; $rVraagGroepenOp = mysql_query ( $qVraagGroepenOp ); $aVraagGroepenOp = mysql_fetch_assoc ( $rVraagGroepenOp )
然后我把它转换成一个函数
and I converted that to a function
vraagOp("testtable","testtable_ID = $id");
function vraagOp($table,$where)
{
$qVraagOp = "SELECT * FROM $table WHERE $where";
$rVraagOp = mysql_query( $qVraagOp );
$aVraagOp = mysql_fetch_assoc( $rVraagOp );
return $aVraagOp;
}
唯一的问题是当我需要多于一行时,我需要使用 while 循环
only the problem is when i need more then one row i need to use a while loop
$qVraagGroepenOp = "SELECT * FROM testtable where testtype = test";
$rVraagGroepenOp = mysql_query ( $qVraagGroepenOp );
while ( $aVraagGroepenOp = mysql_fetch_assoc ( $rVraagGroepenOp ) )
{
echo "testing <br>";
}
它不会再工作了 有什么技巧可以让我的函数在这个 while 循环中工作吗?
It wont work anymore is there a trick to make my function work with this while loop?
这行不通,但我想达到类似的目的
This won't work but I want to reach to something like it
while (vraagOp("testtable","testtype = test"))
{
echo "testing <br>";
}
这可能吗?
推荐答案
这可以通过函数作用域中的静态变量来完成.
This could be done with static variables in the function scope.
function vraagOp($table,$where)
{
static $rVraagOp;
if(!$rVraagOp){
$qVraagOp = "SELECT * FROM $table WHERE $where";
$rVraagOp = mysql_query( $qVraagOp );
}
return mysql_fetch_assoc( $rVraagOp );
}
这应该可以满足您的需求.
That should do what you're after.
这篇关于PHP:让你自己的函数使用 while 循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!