$page_num=20;
$query="select top $page_num  * from table where table_id not in (select top $page_num*($current_page-1) * from table)";

解决方案 »

  1.   

    我们假设每行显示40个汉字或80个英文,采用下面的函数可以将一个字符串写入一个数组,这个数组的每个元素的“屏幕显示宽度”基本相同(按照一个汉字等于两个英文字母的宽度来计算)
    <?
    /**********************************************
    *        Version     :     1.0.001 Free       *
    *        Copyright   :     Baby Studio        *
    *        Email       :     [email protected] *
    *        Author      :     Yingjie Pan        *
    **********************************************/
    ?>
    <?
    echo('效果1<br/>-------<br/>');
    $vamyarr=BabySplit2('我是BabyStudio,请多多指教!','5',0);
    foreach($vamyarr as $vsitem)
    {
    echo($vsitem.'<br/>');
    }
    echo('-------<br/><br/>');
    echo('效果2<br/>-------<br/>');
    $vamyarr=BabySplit2('我是BabyStudio,请多多指教!','5',1);
    foreach($vamyarr as $vsitem)
    {
    echo($vsitem.'<br/>');
    }
    echo('-------<br/>');
    function BabySplit($vsstr_,$vilen_)
    {
    $vareturn=array();
    $viindex=0;
    $vitmp=0;
    $vstmp='';
    $vicncharaterend=0;
    $vscharacter=substr($vsstr_,$viindex,1);
    $vsrealcharacter=substr($vsstr_,$viindex,1);
    while(strlen($vsrealcharacter))
    {
    $viindex++;
    if(ord($vscharacter)<0 || ord($vscharacter)>127)
    {
    if($vicncharaterend==0)
    {
    $vicncharaterend=1;
    }
    else
    {
    $vitmp++;
    $vicncharaterend=0;
    }
    }
    else
    {
    $vitmp++;
    }
    $vstmp=$vstmp.$vscharacter;
    if($vitmp==$vilen_)
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    }
    $vscharacter=substr($vsstr_,$viindex,1);
    $vsrealcharacter=substr($vsstr_,$viindex,1);
    if(!strlen($vsrealcharacter))
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    break;
    }
    }
    return($vareturn);
    }
    function BabySplit2($vsstr_,$vilen_,$vimode)
    {
    $vareturn=array();
    $viindex=0;
    $vitmp=0;
    $vstmp='';
    $vicncharaterend=0;
    $vscharacter=substr($vsstr_,$viindex,1);
    $vsrealcharacter=substr($vsstr_,$viindex,1);
    $vsrealcharacter2=substr($vsstr_,$viindex+1,1);
    while(strlen($vsrealcharacter))
    {
    $viindex++;
    $vitmp++;
    if(ord($vscharacter)<0 || ord($vscharacter)>127)
    {
    if($vicncharaterend==0)
    {
    $vicncharaterend=1;
    $vstmp=$vstmp.$vscharacter;
    }
    else
    {
    $vicncharaterend=0;
    $vstmp=$vstmp.$vscharacter;
    if($vitmp>=$vilen_)
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    }
    elseif($vitmp+1==$vilen_ && $vimode==1)
    {
    if(ord($vsrealcharacter2)<0 || ord($vsrealcharacter2)>127)
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    }
    }
    elseif($vitmp==$vilen_+1 && $vimode==0)
    {
    if(ord($vsrealcharacter2)<0 || ord($vsrealcharacter2)>127)
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    }
    }
    }
    }
    else
    {
    $vstmp=$vstmp.$vscharacter;
    if($vitmp==$vilen_)
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    }
    elseif($vitmp+1==$vilen_ && $vimode==1)
    {
    if(ord($vsrealcharacter2)<0 || ord($vsrealcharacter2)>127)
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    }
    }
    elseif($vitmp==$vilen_+1 && $vimode==0)
    {
    if(ord($vsrealcharacter2)<0 || ord($vsrealcharacter2)>127)
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    }
    }
    }
    $vscharacter=substr($vsstr_,$viindex,1);
    $vsrealcharacter=substr($vsstr_,$viindex,1);
    $vsrealcharacter2=substr($vsstr_,$viindex+1,1);
    if(!strlen($vsrealcharacter))
    {
    array_push($vareturn,$vstmp);
    $vitmp=0;
    $vstmp='';
    break;
    }
    }
    return($vareturn);
    }
    ?>