上面有一个<html>
怎么下面又 echo "<html><head> 
不是重复了下面的table也不用 echo了 直接写出来分页的话可以
上网搜个分页类,很多的php代码和html最好是分开成两个文件

解决方案 »

  1.   

    select结尾加limit语句控制分页搜索结果也可以用pear的pagger
      

  2.   

    那是我多写了,复制的时候忘了删了    这个没关系
      关键是要分页效果,有知道的通知帮我弄下吧  ,网上的分页都乱七八糟的,看都看不懂,而且大多数都是mysql的,没oracle的。请各位高手帮忙写下
      

  3.   

    没见到你使用分页的sql语句.
    建议使用 pear的db类进行数据库操作.数据库部分自己写吧.再给你一个分页函数function _setPage($baseUrl, $total, $start, $limit, $parm="", $top = 0)
    {
      if($total != 0) $pages = $total/$limit;  else $pages = 0;
       if(empty($start)) $start=0;
       if(empty($limit)) $limit=20;   
       if($start>$total)$start=$total-$limit;
       if($start<0) $start=0;
       if($limit<0) $limit=0;
       if($limit>100) $limit=100;
       
       //$start = $start - $top;
       $showpage = 10;
       $currentpage=$start/$limit;
       if($currentpage<5){
          $pageno=0;
          $i=0;
       } else{
         if($currentpage+10 > $total/$limit ){
            $pageno=$currentpage -5;
         }else{
            $pageno=$currentpage - 5;
         }
         $i=$pageno*$limit;
       }
       if($total==0) $currentpage = -1;
       $strPage =  "总[" . ($currentpage + 1) . "/" . ceil($pages) . "]页&nbsp;&nbsp;";
       $page=0;
       $strPage .= "";   if($start/$limit > $showpage)
       {
         $tmp = ($pageno - 1)* $limit;
         $strPage.= "<a href='$baseUrl&$parm&start=".($tmp)."&limit=$limit'><<</a>";
       }
       
       while($i < $total)
       {
          if($start/$limit ==$pageno)
          {
            $strPage .=  "<font color=red>". ($pageno + 1) ." </font>";
          }
          else
          {
            $strPage .= "<a href='$baseUrl&$parm&start=".($pageno*$limit)."&limit=$limit'>".($pageno + 1)."</a> ";
          }
          $pageno++;
          $page++;
          $i+=$limit;      if($page > $showpage)
          {
            $strPage.= "<a href='$baseUrl&$parm&start=".($pageno*$limit)."&limit=$limit'>>></a>";
            break;
          }
        }
        
        if($start>0){
            $strPage .= "&nbsp;<a href='$baseUrl?$parm&start=0&limit=$limit'>首页</a>&nbsp;";
        }else{
            $strPage .= "&nbsp;首页&nbsp;";
        }    if($start>0){
            $strPage .=  "&nbsp;<a href='$baseUrl&$parm&start=".($start-$limit)."&limit=$limit'>上一页</a>&nbsp;";
        }
        if($start+$limit< $total){
            $strPage .= "&nbsp;<a href='$baseUrl&$parm&start=".($start+$limit)."&limit=$limit' >下一页</a>&nbsp;";
        }    if($start+$limit< $total){
          $strPage .= "&nbsp;<a href='$baseUrl&$parm&start=".($total- $total%$limit)."&limit=$limit'>尾页</a>&nbsp;";
        }else{
          $strPage .= "&nbsp;尾页&nbsp;";
        }
        return $strPage;
    }
      

  4.   

    什么分页的SQL语句啊??  我用到的SQL语句都贴出来了啊
      

  5.   

    你只是select * from * order by *
    这样得出来的是总数.function($baseUrl, $total, $start, $limit, $parm="", $top = 0)
    $baseUrl为分页的地址,比如说list.php
    $total为帖子总数
    $start为当前页面开始的条数
    $limit为每页显示数
    $parm为额外添加的参数.
      

  6.   

    我的SQL就是'select t.股票代码,t.股票名称,t.推荐买入时间,t.开盘买入,t.均价卖出,t.预期收益,t.最低收益,t.最高收益 from 个股推荐展示表 t where flag=0 order by t.推荐买入时间 desc', 
     我需要分页的页面就是当前页,也就是上面我贴出来的页面,这个页面叫test.php,至于其他几个参数我还真是迷糊了,麻烦你帮我弄下, 拜托了
      

  7.   

    你的sql是获取所有的数据,明白不?
    //获取get信息
    extract($_GET);
    if(!isset($start))
    {
      $start = 0;
    }
    $limit = 10;
    $start = ($page - 1) *  $limit;
    $end = $start + $limit;//获取总数
    $query = 'select count(*)  from xxx where flag=0';
    ...
    //$total = 总数//获取从$start到$end的记录
    $query1 = "select * from (select a.*,rownum as rno from xxx) where rno> $start and rno < $end;"
    ...
    //$strPage为分页的串,显示到你要显示分页页码的地方.
    $strPage = _setPage("test.php", $total, $start, $limit);
      

  8.   

             //获取get信息
    extract($_GET);
    if(!isset($start))
    {
      $start = 0;
    }
    $limit = 10;
    $start = ($page - 1) *  $limit;
    $end = $start + $limit;//获取总数
    $query = 'select count(*)  from 个股推荐展示表 where flag=2';$total = $query;//获取从$start到$end的记录
    $query1 = "select * from (select a.*,rownum as rno from 个股推荐展示表 a where flag=2) where rno> 0;"//$strPage为分页的串,显示到你要显示分页页码的地方.
    $str=_setPage("test.php", $total, $start, $limit);我是这样写的,没错吧?     另外$str=_setPage("test.php", $total, $start, $limit);报错。
      

  9.   

    我看错了  没事    不好意思  
       extract($_GET);  这句话里面不要加参数了吗?  
      

  10.   

    兄弟,你不能直接这样写的.
    $total = $query;
    你还是要执行
    $stmt = oci_parse($cn,$query);
    oci_execute($stmt);
    这些操作的吗呵呵,我对oci系统的函数不熟,以前的时候都是用pear_db来操作的.
      

  11.   

    <?php
    require_once("./database/conn.php");
    require_once './database/operatebean.php'; 
    //echo "dddd";
    $db = new database();
    //echo $nrows;
    $cn = $db->conn;
    $query = 'select t.股票代码,t.股票名称,t.推荐买入时间,t.开盘买入,t.均价卖出,t.实际收益 from 个股推荐展示表 t where flag=2 order by t.推荐买入时间 desc';
    //$stmt = oci_parse($cn,$query);
    //oci_execute($stmt);
    $stmt =oci_parse($cn,$query);
    oci_execute($stmt); 
    $nrows = ocifetchstatement($stmt, $results);
     echo "<html><head> <link rel=\"stylesheet\" type=\"text/css\" href=\"./style/css.css\"/><body>";
      echo "<center><font size=4>个股推荐可能达到的最大收益展示</font><br><font color=red size=4>(".substr($results['推荐买入时间'][$nrows-1],0,4)."年".substr($results['推荐买入时间'][$nrows-1],5,2)."月".substr($results['推荐买入时间'][$nrows-1],8,2)."日——".substr($results['推荐买入时间'][0],0,4)."年".substr($results['推荐买入时间'][0],5,2)."月".substr($results['推荐买入时间'][0],8,2)."日)</font></center><br><br>";   
    //  echo "<hr>"; 
     echo "<table border=1 align=center cellspacing=0 cellpadding=0 width=770 height=827><tr><td align=center>股票代码</td><td align=center>股票名称</td><td align=center>推荐时间</td><td align=center>开盘买入</td><td align=center>均价卖出</td><td align=center>实际收益</td><td align=center>累计收益</td><td align=center>次均收益</td></tr>";
         for($i = 0; $i < $nrows; $i++){
     
                        $temp=1;
                      for($j=$nrows-1;$j>=$i;$j--){
                           $temp=$temp*(1+($results['实际收益'][$j]/100));  
                          
    //                       echo $temp."<br>";
    //                       echo "-----------------------------------------";  
                 }    
                  $temp2=($temp-1)/($nrows-$i);  
                  
                 echo "
    <tr>
     <td align=center>".$results['股票代码'][$i]."</td>
     <td align=center>".$results['股票名称'][$i]."</td>
     <td align=center>".$results['推荐买入时间'][$i]."</td>
     <td align=center>".$results['开盘买入'][$i]."</td>
     <td align=center>".$results['均价卖出'][$i]."</td>
     <td align=center>".($results['实际收益'][$i]+0)."%</td>
     <td align=center>".round((($temp-1)*100),2)."%</td>
     <td align=center>".round(($temp2*100),2)."%</td>
    </tr>                                                                        
                
    ";     
                                   
         }
         
          echo "</table>"; 
          
              //获取get信息
    extract($_GET);
    if(!isset($start))
    {
      $start = 0;
    }
    $limit = 10;
    $start = ($page - 1) *  $limit;
    $end = $start + $limit;//获取总数
    $query2 = 'select count(*)  from 个股推荐展示表 where flag=2';
      $stmt2 =oci_parse($cn,$query2);
    oci_execute($stmt2); 
    $nrows2 = ocifetchstatement($stmt2, $results2);
    $total = $nrows2;//获取从$start到$end的记录
    //$query1 = "select * from (select a.*,rownum as rno from 个股推荐展示表 a where flag=2) where rno> 0;"//$strPage为分页的串,显示到你要显示分页页码的地方.
     $str=_setPage("test.php", $total, $start, $limit);       echo "<center>".$str."</center>";
          echo "</html></head></body>"; 
    我那样写是省了那几部,这是我改了以后的代码,但是还是没用,最后显示的结果是这样的:总[1/1]页  1  首页  尾页 
    ,我改了那个limit=10,也还是这样,不知道什么原因, 麻烦你在帮我看看  ,帮人帮到底吧  先谢谢了
      

  12.   

    require_once("./database/conn.php");
    require_once './database/operatebean.php'; 
    //echo "dddd";
    $db = new database();
    //echo $nrows;
    $cn = $db->conn;
    //获取get信息
    extract($_GET);
    if(!isset($start))
    {
      $start = 0;
    }
    $limit = 10;
    $page = ceil($start/$limit) + 1;
    $end = $start + $limit;//获取总数
    $query2 = 'select count(*)  from 个股推荐展示表 where flag=2';
      $stmt2 =oci_parse($cn,$query2);
    oci_execute($stmt2); 
    $nrows2 = ocifetchstatement($stmt2, $results2);
    $total = $nrows2;//获取从$start到$end的记录
    //$query1 = "select * from (select a.*,rownum as rno from 个股推荐展示表 a where flag=2) where rno> 0;"//$strPage为分页的串,显示到你要显示分页页码的地方.
     $str=_setPage("test.php", $total, $start, $limit);//这个sql要写成当前页的sql///$query = 'select t.股票代码,t.股票名称,t.推荐买入时间,t.开盘买入,t.均价卖出,t.实际收益 from 个股推荐展示表 t where flag=2 order by t.推荐买入时间 desc';
    $query1 = "select t.股票代码,t.股票名称,t.推荐买入时间,t.开盘买入,t.均价卖出,t.实际收益 from (select a.*,rownum as rno from 个股推荐展示表 a where flag=2) where rno> $start and rno < $end "
    //$stmt = oci_parse($cn,$query);
    //oci_execute($stmt);
    $stmt =oci_parse($cn,$query);
    oci_execute($stmt); 
    $nrows = ocifetchstatement($stmt, $results);
     echo "<html><head> <link rel=\"stylesheet\" type=\"text/css\" href=\"./style/css.css\"/><body>";
      echo "<center><font size=4>个股推荐可能达到的最大收益展示</font><br><font color=red size=4>(".substr($results['推荐买入时间'][$nrows-1],0,4)."年".substr($results['推荐买入时间'][$nrows-1],5,2)."月".substr($results['推荐买入时间'][$nrows-1],8,2)."日——".substr($results['推荐买入时间'][0],0,4)."年".substr($results['推荐买入时间'][0],5,2)."月".substr($results['推荐买入时间'][0],8,2)."日)</font></center><br><br>";   
    //  echo "<hr>"; 
     echo "<table border=1 align=center cellspacing=0 cellpadding=0 width=770 height=827><tr><td align=center>股票代码</td><td align=center>股票名称</td><td align=center>推荐时间</td><td align=center>开盘买入</td><td align=center>均价卖出</td><td align=center>实际收益</td><td align=center>累计收益</td><td align=center>次均收益</td></tr>";
         for($i = 0; $i < $nrows; $i++){
     
                        $temp=1;
                      for($j=$nrows-1;$j>=$i;$j--){
                           $temp=$temp*(1+($results['实际收益'][$j]/100));  
                          
    //                       echo $temp."<br>";
    //                       echo "-----------------------------------------";  
                 }    
                  $temp2=($temp-1)/($nrows-$i);  
                  
                 echo "
    <tr>
     <td align=center>".$results['股票代码'][$i]."</td>
     <td align=center>".$results['股票名称'][$i]."</td>
     <td align=center>".$results['推荐买入时间'][$i]."</td>
     <td align=center>".$results['开盘买入'][$i]."</td>
     <td align=center>".$results['均价卖出'][$i]."</td>
     <td align=center>".($results['实际收益'][$i]+0)."%</td>
     <td align=center>".round((($temp-1)*100),2)."%</td>
     <td align=center>".round(($temp2*100),2)."%</td>
    </tr>                                                                        
                
    ";     
                                   
         }
         
          echo "</table>"; 
         echo "<center>".$str."</center>";
    echo "</html></head></body>"; 
      

  13.   

    最后修改的所有代码如下:<?php
    require_once("./database/conn.php");
    require_once './database/operatebean.php'; 
    //echo "dddd";
    $db = new database();
    //echo $nrows;
    $cn = $db->conn;
    $query = 'select t.股票代码,t.股票名称,t.推荐买入时间,t.开盘买入,t.均价卖出,t.实际收益 from 个股推荐展示表 t where flag=2 order by t.推荐买入时间 desc';
    //$stmt = oci_parse($cn,$query);
    //oci_execute($stmt);
    $stmt =oci_parse($cn,$query);
    oci_execute($stmt); 
    $nrows = ocifetchstatement($stmt, $results);
     echo "<html><head> <link rel=\"stylesheet\" type=\"text/css\" href=\"./style/css.css\"/><body>";
      echo "<center><font size=4>个股推荐可能达到的最大收益展示</font><br><font color=red size=4>(".substr($results['推荐买入时间'][$nrows-1],0,4)."年".substr($results['推荐买入时间'][$nrows-1],5,2)."月".substr($results['推荐买入时间'][$nrows-1],8,2)."日——".substr($results['推荐买入时间'][0],0,4)."年".substr($results['推荐买入时间'][0],5,2)."月".substr($results['推荐买入时间'][0],8,2)."日)</font></center><br><br>";   
    //  echo "<hr>"; 
     echo "<table border=1 align=center cellspacing=0 cellpadding=0 width=770 height=827><tr><td align=center>股票代码</td><td align=center>股票名称</td><td align=center>推荐时间</td><td align=center>开盘买入</td><td align=center>均价卖出</td><td align=center>实际收益</td><td align=center>累计收益</td><td align=center>次均收益</td></tr>";
         for($i = 0; $i < $nrows; $i++){
     
                        $temp=1;
                      for($j=$nrows-1;$j>=$i;$j--){
                           $temp=$temp*(1+($results['实际收益'][$j]/100));  
                          
    //                       echo $temp."<br>";
    //                       echo "-----------------------------------------";  
                 }    
                  $temp2=($temp-1)/($nrows-$i);  
                  
                 echo "
    <tr>
     <td align=center>".$results['股票代码'][$i]."</td>
     <td align=center>".$results['股票名称'][$i]."</td>
     <td align=center>".$results['推荐买入时间'][$i]."</td>
     <td align=center>".$results['开盘买入'][$i]."</td>
     <td align=center>".$results['均价卖出'][$i]."</td>
     <td align=center>".($results['实际收益'][$i]+0)."%</td>
     <td align=center>".round((($temp-1)*100),2)."%</td>
     <td align=center>".round(($temp2*100),2)."%</td>
    </tr>                                                                        
                
    ";     
                                   
         }
         
          echo "</table>"; 
          
              //获取get信息
    extract($_GET);
    if(!isset($start))
    {
      $start = 0;
    }
    $limit = 10;
    $start = ($page - 1) *  $limit;
    $end = $start + $limit;//获取总数
    $query2 = 'select 股票代码,股票名称,推荐买入时间,开盘买入,均价卖出,实际收益 from (select 股票代码,股票名称,推荐买入时间,开盘买入,均价卖出,实际收益,rownum as rno from 个股推荐展示表 t where flag=2) where rno>0';
      $stmt2 =oci_parse($cn,$query2);
    oci_execute($stmt2); 
    $nrows2 = ocifetchstatement($stmt2, $results2);
    $total = $nrows2;//获取从$start到$end的记录
    //$query1 = "select * from (select a.*,rownum as rno from 个股推荐展示表 a where flag=2) where rno> 0;"//$strPage为分页的串,显示到你要显示分页页码的地方.
     $str=_setPage("test3.php", $total, $start, $limit);
              echo $nrows2;
           echo "<center>".$str."</center>";
          echo "</html></head></body>"; 
                      
       
    //while ($row=oci_fetch_array($stmt)) 
    //{
    //echo "$row[0]&nbsp;";
    //var_dump($row[0]);//}
       oci_free_statement($stmt);  
          
          
              
              /**
              * $baseUrl为分页的地址,比如说list.php 
              $total为帖子总数 
              $start为当前页面开始的条数 
              $limit为每页显示数 
              $parm为额外添加的参数.
              */
          function _setPage($baseUrl, $total, $start, $limit, $parm="", $top = 0)
    {
      if($total != 0) $pages = $total/$limit;  else $pages = 0;
       if(empty($start)) $start=0;
       if(empty($limit)) $limit=10;   
       if($start>$total)$start=$total-$limit;
       if($start<0) $start=0;
       if($limit<0) $limit=0;
       if($limit>100) $limit=100;
       
       //$start = $start - $top;
       $showpage = 10;
       $currentpage=$start/$limit;
       if($currentpage<5){
          $pageno=0;
          $i=0;
       } else{
         if($currentpage+10 > $total/$limit ){
            $pageno=$currentpage -5;
         }else{
            $pageno=$currentpage - 5;
         }
         $i=$pageno*$limit;
       }
       if($total==0) $currentpage = -1;
       $strPage =  "总[".($currentpage + 1)."/".ceil($pages)."]页&nbsp;&nbsp;";
       $page=0;
       $strPage .= "";   if($start/$limit > $showpage)
       {
            $tmp = ($pageno - 1)* $limit;
            $strPage.= "<a href='$baseUrl&$parm&start=".($tmp)."&limit=$limit'><<</a>";
       }
       
       while($i < $total)
       {
          if($start/$limit ==$pageno)
          {
            $strPage .=  "<font color=red>". ($pageno + 1) ." </font>";
          }
          else
          {
            $strPage .= "<a href='$baseUrl&$parm&start=".($pageno*$limit)."&limit=$limit'>".($pageno + 1)."</a> ";
          }
          $pageno++;
          $page++;
          $i+=$limit;      if($page > $showpage)
          {
            $strPage.= "<a href='$baseUrl&$parm&start=".($pageno*$limit)."&limit=$limit'>>></a>";
            break;
          }
        }
        
        if($start>0){
            $strPage .= "&nbsp;<a href='$baseUrl?$parm&start=0&limit=$limit'>首页</a>&nbsp;";
        }else{
            $strPage .= "&nbsp;首页&nbsp;";
        }    if($start>0){
            $strPage .=  "&nbsp;<a href='$baseUrl&$parm&start=".($start-$limit)."&limit=$limit'>上一页</a>&nbsp;";
        }
        if($start+$limit< $total){
            $strPage .= "&nbsp;<a href='$baseUrl&$parm&start=".($start+$limit)."&limit=$limit' >下一页</a>&nbsp;";
        }    if($start+$limit< $total){
          $strPage .= "&nbsp;<a href='$baseUrl&$parm&start=".($total- $total%$limit)."&limit=$limit'>尾页</a>&nbsp;";
        }else{
          $strPage .= "&nbsp;尾页&nbsp;";
        }
        return $strPage;
    }      
    ?>
      

  14.   

    我觉得还是写个专业的php文件做分页处理
    然后其他的不要写在里面
    页面也只是个调用
    只要是分页的地方
    都调用这个php文件