在php中保持连续计数

时间:2010-03-22 09:04:21

标签: php

我有一个小问题,维持一个位置的计数。我编写了一个函数函数,它将选择页面中的所有用户并将它们按顺序排列。

例如:
迈克的位置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中维护一个数组键值我删除某些名称......

5 个答案:

答案 0 :(得分:1)

$position = $position + ($page - 1) * $count_per_page; 
//In your case $count_per_page == 30;

答案 1 :(得分:0)

作为第二页的参数传递一个偏移,让我们说30.所以你的位置将是position+offset+1

答案 2 :(得分:0)

您正在修改函数positionnrk的值,并在循环中返回未分配回position的更改值。所以你需要这样做:

$position = nrk($duty,$page,$position);

或者您可以避免返回修改后的值并通过引用传递变量position

答案 3 :(得分:0)

如果我对问题的理解是正确的,那么你需要通过引用传递$ position变量,例如:

for ($page=0;$page<=$pageNumb;$page=$page + 10)
        {
            nrk($duty,$page,&$position);
        }

答案 4 :(得分:0)

或者您可以将计数器存储在会话变量中,以便可以从站点的任何位置检索。