我有一个小问题,维持一个位置的计数。我编写了一个函数函数,它将选择页面中的所有用户并将它们按顺序排列。
例如:
迈克的位置1
Steve Postion 2 ..............
....
雅各布职位30
但是当我移动到第二页时我遇到的问题,计数从第一页开始 例如:Jenny应该是31号,但列表是,
珍妮位置1
Tanya职位2 .......
以下是我的功能
function nrk($duty,$page,$position)
{
$url="http://www.test.com/people.php?q=$duty&start=$page";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
$result=curl_exec($ch);
$dom = new DOMDocument();
@$dom->loadHTML($result);
$xpath=new DOMXPath($dom);
$elements = $xpath->evaluate("//div");
foreach ($elements as $element)
{
$name = $element->getElementsByTagName("name")->item(0)->nodeValue;
$position=$position+1;
echo $name." Position:".$position."<br>";
}
return $position;
}
下面是for循环,我尝试循环遍历页面计数
for ($page=0;$page<=$pageNumb;$page=$page + 10)
{
nrk($duty,$page,$position);
}
我不想在每个coz中维护一个数组键值我删除某些名称......
答案 0 :(得分:1)
$position = $position + ($page - 1) * $count_per_page;
//In your case $count_per_page == 30;
答案 1 :(得分:0)
作为第二页的参数传递一个偏移,让我们说30.所以你的位置将是position+offset+1
答案 2 :(得分:0)
您正在修改函数position
中nrk
的值,并在循环中返回未分配回position
的更改值。所以你需要这样做:
$position = nrk($duty,$page,$position);
或者您可以避免返回修改后的值并通过引用传递变量position
。
答案 3 :(得分:0)
如果我对问题的理解是正确的,那么你需要通过引用传递$ position变量,例如:
for ($page=0;$page<=$pageNumb;$page=$page + 10)
{
nrk($duty,$page,&$position);
}
答案 4 :(得分:0)
或者您可以将计数器存储在会话变量中,以便可以从站点的任何位置检索。